Güncelleştirme İşleyicilerini Çağırma Zamanı
Kullanıcının, WM_INITMENUPOPUP iletisi oluşturan Dosya menüsünde fareye tıkladığı varsayın. Çerçevenin güncelleştirme mekanizması, kullanıcının görebilmesi için menü düşmeden önce Dosya menüsündeki tüm öğeleri toplu olarak güncelleştirir.
Bunu yapmak için çerçeve, standart komut yönlendirmesi boyunca açılır menüdeki tüm menü öğeleri için güncelleştirme komutlarını yönlendirir. Yönlendirmedeki komut hedefleri, update komutunu uygun bir ileti eşleme girdisiyle (formun ON_UPDATE_COMMAND_UI
) eşleştirerek ve bir "güncelleştirme işleyicisi" işlevini çağırarak menü öğelerini güncelleştirme fırsatına sahiptir. Bu nedenle, altı menü öğesi içeren bir menü için altı güncelleştirme komutu gönderilir. Menü öğesinin komut kimliği için bir güncelleştirme işleyicisi varsa, güncelleştirmeyi yapmak için çağrılır. Aksi takdirde, çerçeve bu komut kimliği için bir işleyicinin varlığını denetler ve menü öğesini uygun şekilde etkinleştirir veya devre dışı bırakır.
Çerçeve, komut yönlendirme sırasında bir ON_UPDATE_COMMAND_UI
girdi bulamazsa, aynı komut kimliğine sahip bir ON_COMMAND
giriş varsa kullanıcı arabirimi nesnesini otomatik olarak etkinleştirir. Aksi takdirde, kullanıcı arabirimi nesnesini devre dışı bırakır. Bu nedenle, bir kullanıcı arabirimi nesnesinin etkinleştirildiğinden emin olmak için, nesnenin oluşturduğu komut için bir işleyici sağlayın veya bu nesne için bir güncelleştirme işleyicisi sağlayın. Kullanıcı Arabirimi Nesneleri ve Komut Kimlikleri konu başlığındaki şekline bakın.
Kullanıcı arabirimi nesnelerinin varsayılan devre dışı bırakılması devre dışı bırakılamaz. Daha fazla bilgi için bkz. MFC Başvurusu'ndaki sınıfın CFrameWnd
m_bAutoMenuEnable üyesi.
Menü başlatma, uygulama bir WM_INITMENUPOPUP iletisi aldığında meydana gelen çerçevede otomatik olarak gerçekleştirilir. Boşta döngü sırasında çerçeve, komut yönlendirmesinde düğme güncelleştirme işleyicilerini menülerle aynı şekilde arar.
Ayrıca bkz.
Nasıl yapılır: Kullanıcı Arabirimi Nesnelerini Güncelleştirme