Aracılığıyla paylaş


Komut Yönlendirme

Komutlarla çalışma sorumluluğunuz, MFC Sınıf Sihirbazı'nı kullandığınız bir görev olan komutlarla işleyici işlevleri arasında ileti eşleme bağlantıları oluşturmakla sınırlıdır. Ayrıca komut işleyicileri için kodu da yazmanız gerekir.

Windows iletileri genellikle ana çerçeve penceresine gönderilir, ancak komut iletileri daha sonra diğer nesnelere yönlendirilir. Çerçeve, komutları standart bir komut hedefi nesneleri dizisi üzerinden yönlendirir ve bunlardan birinin komut için bir işleyicisi olması beklenir. Her komut hedefi nesnesi, gelen iletiyi işleyebilir olup olmadığını görmek için ileti eşlemesini denetler.

Farklı komut hedefi sınıfları kendi ileti eşlemelerini farklı zamanlarda denetler. Genellikle, bir sınıf komutu komutta ilk şans vermek için diğer bazı nesnelere yönlendirir. Bu nesnelerin hiçbiri komutu işlemezse, özgün sınıf kendi ileti eşlemesini denetler. Ardından, bir işleyicinin kendisini sağlayamıyorsa, komutu henüz daha fazla komut hedefine yönlendirebilir. Aşağıdaki Standart Komut Yolu tablosu, sınıfların her birinin bu diziyi nasıl yaptığını gösterir. Bir komutun bir komutu yönlendirmesinin genel sırası:

  1. Şu anda etkin olan alt komut hedefi nesnesine.

  2. Kendi kendine.

  3. Diğer komut hedeflerine.

Bu yönlendirme mekanizması ne kadar pahalıdır bir komuta yanıt olarak işleyicinizin yaptıklarına kıyasla yönlendirmenin maliyeti düşüktür. Çerçevenin yalnızca kullanıcı bir kullanıcı arabirimi nesnesiyle etkileşime geçtiğinde komutlar oluşturduğunu unutmayın.

Standart Komut Yolu

Bu tür bir nesne bir komut aldığında. . . Kendisine ve diğer komut hedefi nesnelerine komutu şu sırayla işleme şansı verir:
MDI çerçeve penceresi (CMDIFrameWnd) 1. Etkin CMDIChildWnd
2. Bu çerçeve penceresi
3. Uygulama (CWinApp nesne)
Belge çerçevesi penceresi (CFrameWnd, CMDIChildWnd) 1. Etkin görünüm
2. Bu çerçeve penceresi
3. Uygulama (CWinApp nesne)
Göster 1. Bu görünüm
2. Görünüme eklenmiş belge
Belge 1. Bu belge
2. Belgeye eklenmiş belge şablonu
İletişim kutusu 1. Bu iletişim kutusu
2. İletişim kutusunun sahibi olan pencere
3. Uygulama (CWinApp nesne)

Yukarıdaki tablonun ikinci sütunundaki numaralandırılmış girdilerin belge gibi diğer nesnelerden bahsettiğinde, ilk sütundaki ilgili öğeye bakın. Örneğin, görünümün bir komutu belgesine ilettiğini ikinci sütunda okuduğunuzda, yönlendirmeyi daha fazla izlemek için ilk sütundaki "Belge" girdisine bakın.

Ayrıca bkz.

Framework'ün İşleyici Çağırması