Aracılığıyla paylaş


İletileri Denetleme

Bu bölüm, Windows iletilerinin denetimlerle iletişim kurmak için nasıl kullanıldığı hakkında bilgi içerir.

Aşağıdaki konular ele alınıyor.

Ortak Denetimlere İletiler

Yaygın denetimler windows olduğundan, bir uygulama WM_GETFONT veya WM_SETTEXTgibi yaygın Microsoft Win32 iletilerini kullanarak onlarla iletişim kurabilir. Ayrıca, her ortak denetimin pencere sınıfı denetime özgü iletiler kümesini destekler. Genellikle bir uygulama, iletileri denetime geçirmek için SendMessage veya SendDlgItemMessage kullanır (genellikle dönüş değerindeki bilgiler alınır).

Bazı yaygın denetimlerde, sendMessageyerine bir uygulamanın kullanabileceği bir makro kümesi de vardır. Makroların kullanımı genellikle işlevlerden daha kolaydır. Aşağıdaki örnek kod, seçili ağaç görünümü öğesinin metnini alır, önce ham iletileri, ikinci olarak da eşdeğer makroları kullanarak alır. hwnd denetim penceresinin tanıtıcısı olduğunu varsayalım.

BOOL fSuccess;
WCHAR itemText[99];
TVITEM tvItem = { 0 };
tvItem.mask = TVIF_TEXT;
tvItem.cchTextMax = ARRAYSIZE(itemText);
tvItem.pszText = itemText;

// This...
tvItem.hItem = (HTREEITEM)SendMessage(hwnd, TVM_GETNEXTITEM, TVGN_CARET, NULL);
fSuccess = SendMessage(hwnd, TVM_GETITEM, 0, (LPARAM)&tvItem);

// ... is equivalent to this.
tvItem.hItem = TreeView_GetSelection(hwnd);
fSuccess = TreeView_GetItem(hwnd, &tvItem);

Sistem rengi ayarlarında bir değişiklik yapıldığında, Windows tüm üst düzey pencerelere WM_SYSCOLORCHANGE iletisi gönderir. En üst düzey pencerenizin WM_SYSCOLORCHANGE iletisini ortak denetimlerine iletmesi gerekir; aksi takdirde, denetimlere renk değişikliği bildirılmaz. İletinin iletilmesi, ortak denetimleriniz tarafından kullanılan renklerin diğer kullanıcı arabirimi nesneleri tarafından kullanılan renklerle tutarlı olmasını sağlar. Örneğin, bir araç çubuğu denetimi düğmelerini çizmek için "3-B Nesneler" rengini kullanır. Kullanıcı 3B Nesnenin rengini değiştirirse ancak WM_SYSCOLORCHANGE iletisi araç çubuğuna iletilmemişse, sistemdeki diğer düğmelerin rengi değişirken araç çubuğu düğmeleri özgün renklerinde kalır (hatta eski ve yeni renklerin bir bileşimine dönüşür).

Denetimlerden Bildirimler

Denetimler, genellikle kullanıcının girişiyle tetiklenen olaylar denetimde 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. Değişiklikleri üstlerine bildirmek için WM_HSCROLL ve WM_VSCROLL iletilerini kullanan izleme çubukları dışında, yaygın denetimler bildirim başvuru konusunda belirtildiği gibi bildirimleri WM_COMMAND veya WM_NOTIFY iletileri olarak gönderir. Genellikle, eski bildirimler (API'de uzun süredir bulunanlar) WM_COMMANDkullanır.

WM_NOTIFYlParam parametresi, NMHDR yapısının adresi veya ilk üyesi olarak NMHDR içeren daha büyük bir yapının adresidir. Yapısı bildirim kodunu içerir ve bildirim iletisini gönderen ortak denetimi tanımlar. Varsa, kalan yapı üyelerinin anlamı bildirim koduna bağlı olarak değişir.

Her ortak denetim türünün karşılık gelen bir bildirim kodları kümesi vardır. Ortak denetim kitaplığı, birden fazla ortak denetim türü tarafından gönderilebilen bildirim kodları da sağlar. Hangi bildirim kodlarını göndereceğini ve hangi biçimi alacağını belirlemek için ilgi alanı denetimi belgelerine bakın.

WM_NOTIFY iletilerin nasıl işleneceğini gösteren kod gibi, bu iletinin başvuru konusuna bakın.

Genel Denetim Başvurusu