Kalıcı olmayan iletişim kutuları

Kalıcı olmayan bir iletişim kutusu açılır pencere sistem menüsü, başlık çubuğu ve ince bir kenarlık sahip olmalıdır; Yani, iletişim kutusunda şablon, ws_popup, WS_CAPTION, ws_border ve ws_sysmenu stilleri belirtmeniz gerekir. Sistem değil WS_VISIBLE stil şablonu belirtmediği sürece iletişim kutusunu otomatik olarak görüntüleme.

Uygulama, CreateDialog ya da CreateDialogIndirect işlevini kullanarak bir kalıcı olmayan bir iletişim kutusu oluşturur. CreateDialog adını veya bir iletişim kutusunda şablonu içeren kaynak tanımlayıcısı gerektirir; CreateDialogIndirect iletişim kutusunda şablon içeren bir bellek nesnesi tanıtıcı gerektirir. İki diğer işlevler, CreateDialogParam ve CreateDialogIndirectParam, ayrıca kalıcı olmayan iletişim kutuları yaratmak; iletişim kutusu oluşturulurken belirtilen parametre iletişim kutusu prosedürü onlar geçmek.

CreateDialog ve diğer oluşturma iletişim kutusu için bir pencere tanıtıcısı döndürür. Uygulama ve iletişim kutusu yordamı Bu tanıtıcı iletişim kutusunda yönetmek için kullanabilirsiniz. WS_VISIBLE iletişim kutusunda şablon belirtilmezse, örneğin, uygulama iletişim kutusunu pencere tanıtıcısı ShowWindow işlevine ileterek görüntüleyebilirsiniz.

Kalıcı olmayan bir iletişim kutusu sahibi pencere devre dışı bırakır kendisi için iletileri gönderir. İletişim kutusu oluştururken, sistemin etkin pencere yapar, ama kullanıcı ya da uygulama etkin pencerenin herhangi bir anda değiştirebilir. İletişim kutusu yitirmeleri, sahibi pencere etkin olsa bile o z sırada sahibi penceresinin üstündeki kalır.

Uygulama, iletişim kutusunun girdi iletileri gönderme ve alma sorumludur. Çoğu uygulama için bu ana ileti döngüsü kullanın. Taşıyın ve denetimleri klavyeyi kullanarak seçmek için kullanıcı izin vermek için ancak uygulama IsDialogMessage işlevi çağırmalıdır. Bu işlevi hakkında daha fazla bilgi için bkz: İletişim kutusu klavye arabirimi.

Kalıcı olmayan bir iletişim kutusunda bir değer uygulamaya kalıcı bir iletişim kutusu almaz, ancak iletişim kutusu yordamı SendMessage işlevini kullanarak sahibi pencereye bilgi gönderebilirsiniz döndüremez.

Uygulama sonlandırmadan önce tüm kalıcı olmayan iletişim kutuları imha etmeniz gerekir. DestroyWindow işlevini kullanarak bir kalıcı olmayan bir iletişim kutusu yok edebilir. Genellikle, İptal düğmesi seçme gibi kullanıcı girdisine yanıt DestroyWindow iletişim kutusu yordamı çağırır. Kullanıcı hiçbir zaman bu şekilde iletişim kutusunu kapatır, uygulama DestroyWindow çağırmalısınız.

Böylece herhangi bir sonraki aramalar için tanıtıcı kullanan işlevleri hata değerleri DestroyWindow iletişim kutusu, pencere tanıtıcısı geçersiz kılar. Hataları önlemek için iletişim kutusunun yordamı iletişim kutusu yok etti, sahibi vermeli. Birçok uygulama iletişim kutusu tutamacı içeren bir genel de?i?ken korumak. İletişim kutusu iletişim kutusu yordamı yok, o da genel değişkeni iletişim kutusu artık geçerli olmadığını belirten null olarak ayarlar.

İletişim kutusu yordamı EndDialog işlevi bir kalıcı olmayan bir iletişim kutusu yok çağrısı değil.

Index