2010-04-19 40 views
8

Win32 API'sı ile Gui'nin nasıl oluşturulduğunu merak ediyorum.Gui, Win32 API'sı ile

Şu anda CreateWindowEx numaralı telefonu aradığım WM_CREATE olayına çağrıyorum, fakat bunun doğru yolu olduğunu düşünmüyorum.

Örnek olarak, bir 100x20 EditField eklemenin ve ondan metin almanın doğru yolu ne olurdu? WM_Create üzerinde oluşturup GetText() kullanıyor musunuz?

Teşekkür

+1

Ben http://www.aleax.it/TutWin32/ de bu konuda bir öğretici var ama, ne yazık ki, sadece İtalyan öyle - İngilizce 46 fasıl tercüme edemez ve sonucu içine kabak bir cevap ;-). Google Chrome kullanıyorsanız, otomatik İngilizce çevirisini deneyebilirsiniz, sadece eğlence için - EDIT kontrolleri bölüm 22'de ve aşağıdaki gibidir ;-). –

+2

http://stackoverflow.com/questions/342729/learning-the-win32-api –

+0

'un olası kopyasının "öğretici sorma" olarak kapatılması için oylama. –

cevap

1

için örnek web sitelerini yayınlamak için gidiyoruz eğer çok sayıdaki yayının yinelenen olmak zorunda görünüyor Ardından, iletişim kutusu kaynağınızı oluşturmak için bir kaynak düzenleyici kullanın ve ardından uygulama pencere sınıfı kayıt ve pencere oluşturma kodunuzu DialogBoxParam'a basit bir çağrıyla değiştirin. DialogBoxParam iletişim kaynağını okur ve her şeyi kullanıcı font ayarlarına otomatik olarak ölçeklendiren iletişim kutusunu oluşturacak, mesaj döngüsünü idare edecek ve kontroller arasında sekmelerde otomatik destek gibi başka şeyler yapacaktır.

+0

tek şey - kontroller için geçerli tema yazı tiplerini güncellemeniz gerekir, aksi halde .res iletişim kutusu açıklamasından varsayılan yazı tiplerini alırsınız –

1

WM_CREATE olayında bunu yapmanız gerekmez, ancak yapabilirsiniz. Genellikle ana pencerenin oluşturulduğu aynı kapsamda herhangi bir alt pencere oluşturur. Örneğin:

HWND mainWindow = CreateWindowEx(...); 
HWND editField = CreateWindowEx(...); // use mainWindow for the hWndParent param 
             // the hMenu parameter sets child window id