Aracılığıyla paylaş


Ortak denetimleri bildirim alma

Ortak denetimler denetim, kullanıcı girişi gibi olaylar ortaya çıktığında, üst pencere bildirimi göndermek alt pencerelerdir.

Uygulama bu bildirim iletileri eylemi olması için kullanıcının istediği belirlemek için kullanır. En yaygın denetimler bildirim iletileri olarak gönderme WM_NOTIFY iletileri. Windows denetimleri çoğu bildirim iletileri olarak gönderme wm_command iletileri. CWnd::OnNotify için işleyici WM_NOTIFY ileti. Olduğu gibi CWnd::OnCommand, uygulaması, OnNotify bildirim iletisi gönderir OnCmdMsg eşlemelerindeki ileti işleme. Bildirimleri işleme ileti eşleme girdisi ON_NOTIFY. Daha fazla bilgi için bkz: Teknik Not 61: ON_NOTIFY ve WM_NOTIFY iletileri.

Alternatif olarak, türetilmiş bir sınıf "iletisi yansıtma" kullanarak kendi bildirim iletilerini işleyebilir Daha fazla bilgi için bkz: Teknik Not 62: Windows denetimleri için ileti yansıtma.

İmlecin bulunduğu yere bir bildirim iletisi alınıyor

Genellikle, ortak bir denetim tarafından belirli bildirim iletileri alındığında geçerli imleç konumunu belirlemek yararlıdır. Örneğin, bu genel denetim aldığında geçerli imleç konumu belirlemek yararlı olacaktır bir NM_RCLICK bildirim iletisi.

Çağırarak Bunu yapmanın basit bir yolu var. CWnd::GetCurrentMessage. Ancak, bu yöntem yalnızca iletinin gönderildiği anda İmlecin konumunu alır. Çağırmanız gerekir İletinin gönderilmesinden beri geçen imleç taşınmış olabilir çünkü CWnd::GetCursorPos geçerli imleç konumu alınamıyor.

Not

CWnd::GetCurrentMessageyalnızca ileti işleyicisi içinde çağrılmalıdır.

Bildirim ileti işleyicisi gövdesine aşağıdaki kodu ekleyin (Bu örnekte, NM_RCLICK):

CPoint cursorPos;
cursorPos.x = GetCurrentMessage()->pt.x;
cursorPos.y = GetCurrentMessage()->pt.y;

Bu noktada, fare imleci konum depolanan cursorPos nesnesi.

Ayrıca bkz.

Başvuru

Yapma ve denetimlerini kullanma

Kavramlar

Denetimleri (mfc)