Eğer bir iletişim kutusu kayıt var mı?

oy
1

Yani, her türlü toplam acemi olduğumu Windowsilgili programlama. Ben uğraşırken edilmiş Windows APIve pencereleri ve bu tür oluşturmak başlatmak için nasıl birkaç örnekle karşılaştım.

Bir örnek normal bir pencere (kod bazı kısaltılır) oluşturur:

int WINAPI WinMain( [...] )
{

    [...]

    // Windows Class setup
    wndClass.cbSize = sizeof( wndClass );
    wndClass.style  = CS_HREDRAW | CS_VREDRAW;
    [...]    

    // Register class
    RegisterClassEx( &wndClass );

    // Create window
    hWnd = CreateWindow( szAppName, Win32 App,
                         WS_OVERLAPPEDWINDOW,
                         0, 0, 512, 384,
                         NULL, NULL, hInstance, NULL );
    [...]
}

İkinci örnek bir iletişim kutusu (WinMain argümanlar dışında hiçbir kısaltmalar) oluşturur:

int WINAPI WinMain( [...] )
{
    // Create dialog box
    DialogBox(hInstance, 
              MAKEINTRESOURCE(IDD_MAIN_DLG), 
              NULL, 
              (DLGPROC)DialogProc);
}

İkinci örnek kayıt işlevine çağrı içermiyor. Sadece ekli olan DialogProc süreci ile DialogBox oluşturur.

Bu iyi çalışır, ancak pencere sınıfını kaydı ve (bu hiç mümkün değilse) o zaman iletişim kutusunu oluşturmanın faydası olup olmadığını merak ediyorum.

Oluştur 31/08/2008 saat 18:45
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
2

Bir iletişim kutusu kayıt gerekmez.

İletişim kutuları Eğer bir diyalog oluştururken bir pencere sınıfına atıf yoktur (siz belirtildiği gibi) bu yüzden önceden tanımlanmıştır. (Kendi pencere sınıfı oluştururken olsun gibi) bir diyalog daha fazla kontrol istiyorsanız kendinizinkiyle diyaloglar pencere yordamı yerine hangi bir yöntemdir iletişim alt sınıfı olacaktır. Yordamınız çağrıldığında iletişim penceresinin davranışını değiştirmek; Sonra veya yapmaya çalıştığımız şeye göre orijinal pencere yordamı çağırmak olabilir veya olmayabilir.

Cevap 31/08/2008 saat 19:12
kaynak kullanıcı

oy
0

Bu soruya sadece yüzeysel ilişkilidir, ancak Windows programlamaya yeni iseniz, neden Win32 kullanıyorsunuz? (Neyse GUI için ayrı olmalıdır) alt uç kod çok şey var sürece, büyük olasılıkla yanı çok daha az kafa yaralanmaya neden olmalıdır .NET, kullanmak daha mantıklı.

Cevap 31/08/2008 saat 19:19
kaynak kullanıcı

oy
1

Şimdi durumda yaptık beri bir süre oldu, ama IIRC, ilk dava bir bellek içi şablondan, dinamik bir iletişim yaratmak içindir. İkinci örnek bir kaynak kullanan bir iletişim yaratma çok daha yaygındır durumda içindir. Win32 dinamik iletişim şeyler oldukça karmaşık, ama gerçek bir veri tabanlı arayüz oluşturmak ve DLL ile kaynak donatılacak olan sorunları önlemek için izin verdi.

gelince Win32 kullanmak neden - Bir pencere uygulaması gerekiyorsa ve MFC veya .NET çalışma zamanı bağlı istemiyoruz, o kullandığınız budur.

Cevap 31/08/2008 saat 20:10
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more