Kalıcı bir iletişim kutusu oluşturma

Kalıcı iletişim kutusu, iletişim kutusu işlevini kullanarak oluşturun. Tanımlayıcı veya iletişim kutusunda şablon kaynağın adını ve iletişim kutusu yordam adresini belirtmeniz gerekir. İletişim kutusu işlevi şablon yükler iletişim kutusunu görüntüler ve kullanıcı iletişim kutusunu kapatana kadar tüm kullanıcı giriş işlemleri.

Kullanıcı bir uygulama menüsünden bir öğe Sil komutunu seçtiğinde aşağıdaki örnekte, uygulama kalıcı bir iletişim kutusu görüntüler. İletişim kutusu (hangi kullanıcının girdiği bir öğe adı) bir düzenleme denetimi içeren ve Tamam ve iptal düğmeleri. Bu denetimler denetim tanımlayıcıları ID_ITEMNAME, IDOK ve IDCANCEL, sırasıyla şunlardır.

Örneğin ilk kısmı, kalıcı iletişim kutusu oluşturma ifadeleri oluşur. Sistem IDM_DELETEITEM komut tanımlayıcısı olan bir wm_command iletisi aldığında bu ifadeler, pencere yordamı için uygulamanın ana pencere, iletişim kutusu oluşturun. Örneğin ikinci bölümü düzenleme denetimi içeriğini alır ve bir wm_command iletisi alınması üzerine iletişim kutusu kapanır iletişim kutusu yordamdır.

Aşağıdaki deyimleri, kalıcı iletişim kutusu oluşturun. İletişim kutusunda şablon uygulamanın yürütülebilir dosyasındaki bir kaynak ve DLG_DELETEITEM kaynak tanımlayıcısı var.:

case wm_command: geçiş (LOWORD(wParam)) {IDM_DELETEITEM durumda: Eğer (iletişim kutusu (hinst, MAKEINTRESOURCE(DLG_DELETEITEM), hwnd, (dlgproc) DeleteItemProc) IDOK ==) {}
 
                    / / Komutu; tamamlamak szItemName / / maddeye adını içeren / / silin. 

                }
 
                else 
                {

/ / Komutu iptal eder. 

                } 
                break; 
        } 0 l dönmek 

 

Bu örnekte, uygulama sahibi pencere iletişim kutusu için ana penceresi tanımlar. Sistem başlangıçta iletişim kutusunu görüntülediğinde, konumuna göre sahibi pencerenin istemci alanının sol üst köşesinde ' dir. Uygulama iletişim kutusu gelen bir dönüş değeri komutu ile devam etmek ya da iptal edilmeyeceğini belirlemek için kullanır. Aşağıdaki deyimleri iletişim kutusu yordam tanımla.

char szItemName [80]; / / silmek için öğenin adını alır. 
 
bool geri DeleteItemProc (hwndDlg, ileti, wParam, lParam) hwnd hwndDlg; 
UINT ileti; 
wparam wParam; 
lparam lParam; 
{switch (ileti) {wm_command durumda: geçiş (LOWORD(wParam)) {IDOK durumda: Eğer (!GetDlgItemText (hwndDlg, ID_ITEMNAME, szItemName, 80)) * szItemName = 0; 
 
                    / / Fall through. 
 
                durumda IDCANCEL: EndDialog (hwndDlg, wParam); 
                    true döndürür; 
            }} return false; 
} 

 

Örneğin, yordam GetDlgItemText ID_ITEMNAME tarafından tanımlanan düzenleme denetimi geçerli metni almak için kullanır. Yordam daha sonra EndDialog işlevi IDOK ya da IDCANCEL, mesajı alındı bağlı iletişim kutusunun dönüş değeri ayarlanacak ve iletişim kutusunu kapatma işlemine başlamak için çağırır. IDOK ve IDCANCEL tanımlayıcıları için Tamam ve iptal düğmelerini karşılık gelir. EndDialogyordam çağrıları sonra sistem yordama iletişim kutusu yok etmek için ek iletiler gönderir ve geri iletişim kutusunda oluşturulan işlevi için iletişim kutusunun dönüş değerini döndürür.

Index