Yaratılmış Pencerenin Görüntülenmesi
işletim |
Bir pencere WS_VISIBLE
pencere biçimiyle yaratılmışsa yaratılır yaratılmaz zaten görüntülenir. Ancak
değilse ShowWindow API fonksiyonu ile görüntülenir.
BOOL
ShowWindow(HWND hWnd, int nExitCode);
Fonksiyonun birinci
parametresi görüntülenecek pencerenin handle değeri, ikinci parametresi ise
görüntülenme biçimidir. Görüntülenme biçimi SW_MAXIMIZE, SW_MINIMIZE,
SW_RESTORE olabilir.
(Bir fonksiyonun geri dönüş değeri BOOL ise başarı bilgisinin verildiği
anlaşılır. BOOL değer mantıksal olarak 0 ya da 0 dışı bir değer olarak
değerlendirilir. Örneğin ShowWindow başarılı ise 1'e değil 0 dışı herhangi bir
değere geri dönmektedir.)
Ana pencere yaratıldıktan
sonra içsel görüntünün güncelleştirilmesi için WM_PAINT mesajı gerekebilir.
Bunu sağlamak için UpdateWindow API fonksiyonu çağırılır.
İskelet Programın Aşamaları
Pencereli bir Windows
programı tipik olarak 3 aşamadan geçilerek oluşturulur.
1. WNDCLASS yapısının içi doldurularak sisteme tanıtılması aşaması,
2. Pencerenin yaratılarak görüntülenmesi aşaması,
3. Mesaj dögüsünün oluşturulması ve pencere fonksiyonunun tasarımı.
Mesaj Kavramı
DOS işletim sisteminde
klavye ve mouse bilgileri programcının koda yerleştirdiği fonksiyonlar
yardımıyla elde edilir. Örneğin getchar() fonksiyonu klavyeden bir tuşa basılana
kadar bekler, basılan tuşun bilgisini alarak işlemini sonlandırır. Oysa Windows
sistemlerinde klavye ve mouse gibi giriş bilgileri programcının çağırdığı bir
fonksiyonla değil, Windows sistemlerinin kendisi tarafından ilk elden alınır.
Windows sistemlerinde sistem tarafından tespit edilen girdi bilgilerine mesaj
denir. Her girdi bilgisinin yani mesajın hangi nedenden dolayı oluştuğunu
açıklayan bir türü vardır. Örneğin mesaj klavyede bir tuşa basılmasından dolayı
oluşmuş olabilir ya da mouse ile tek tıklama ya da çift tıklama sonucunda
oluşmuş olabilir. Windows oluşan bu mesajı MSG yapısı biçiminde ifade ederek
programın mesaj kuyruğuna yerleştirir. Her programın(32 bit Windows
sistemlerinde aslında her alt işlemin) bir mesaj kuruğu vardır. Mesaj kuyruğu
aslında MSG türünden bir yapı dizisi biçimindedir. MSG yapısı şöyledir:
typedef struct tagMSG { //
msg
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
0 yorum: