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, kendi başına bir işleyici sağlayamıyorsa, komutu başka komut hedeflerine yönlendirebilir. Aşağıdaki Standart Komut Yolu tablosu, sınıfların her birinin bu diziyi nasıl yaptığını gösterir. Bir komut hedefinin bir komutu yönlendirme genel sırası:

  1. Şu anda etkin olan alt komut-hedef nesnesine.

  2. Kendi kendine.

  3. Diğer komut hedeflerine.

Bu yönlendirme mekanizması ne kadar pahalı? Bir komuta yanıt olarak işlemcinizin 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örüntüle 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, ikinci sütunda görünümün bir komutu belgesine ilettiğini okuduğunuzda, yönlendirmeyi daha iyi takip etmek için ilk sütundaki "Belge" kaydına bakın.

Ayrıca bakınız

Çerçeve bir İşleyiciyi Nasıl Çağırır?