Aracılığıyla paylaş


Ortak Denetimlerden Bildirim Alma

Yaygın denetimler, denetimde kullanıcı girişi gibi olaylar gerçekleştiğinde üst pencereye bildirim iletileri gönderen alt pencerelerdir.

Uygulama, kullanıcının hangi eylemi gerçekleştirmesini istediğini belirlemek için bu bildirim iletilerine dayanır. Çoğu yaygın denetim, bildirim iletilerini WM_NOTIFY iletileri olarak gönderir. Windows denetimleri çoğu bildirim iletisini WM_COMMAND ileti olarak gönderir. CWnd::OnNotify , WM_NOTIFY iletisinin işleyicisidir. uygulamasında CWnd::OnCommandolduğu gibi uygulaması OnNotify , ileti eşlemelerinde işleme için bildirim iletisini adresine OnCmdMsg sevk eder. Bildirimleri işlemek için ileti eşleme girdisi ON_NOTIFY. Daha fazla bilgi için bkz . Teknik Not 61: ON_NOTIFY ve WM_NOTIFY İletileri.

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

Bildirim İletisinde İmleç Konumunu Alma

Bazen, belirli bildirim iletileri ortak bir denetim tarafından alındığında imlecin geçerli konumunu belirlemek yararlıdır. Örneğin, ortak bir denetim NM_RCLICK bildirim iletisi aldığında geçerli imleç konumunu belirlemek yararlı olabilir.

bunu çağırarak CWnd::GetCurrentMessagegerçekleştirmenin basit bir yolu vardır. Ancak, bu yöntem yalnızca iletinin gönderildiği sırada imleç konumunu alır. İleti gönderildikten sonra imleç taşınmış olabileceğinden, geçerli imleç konumunu almak için aramanız CWnd::GetCursorPos gerekir.

Dekont

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

Bildirim iletisi işleyicisinin 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 konumu nesnede cursorPos depolanır.

Ayrıca bkz.

Denetimleri Yapma ve Kullanma
Denetimler