#include//視窗過程函式
lresult callback wndproc(hwnd hwnd, uint umsg, wparam wparam, lparam lparam)
return defwindowproc(hwnd,umsg,wparam,lparam);
}int winapi winmain(hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int ncmdshow)//這是windows介面程式的入口
//3.建立視窗
/* hwnd winapi createwindow(
_in_opt_ lpctstr lpclassname, //視窗類的名稱
_in_opt_ lpctstr lpwindowname, //視窗的名字
_in_ dword dwstyle, //視窗的樣式,要注意區分 wndclass 中的 style 成員與 createwindow 函式的 dwstyle 引數, 前者是指定視窗類的樣式, 基於該視窗類建立的視窗都具有這些樣式,
_in_ int x, //視窗的左上角x值
_in_ int y, //視窗左上角y值
_in_ int nwidth, //視窗的寬度
_in_ int nheight, //視窗的高度
_in_opt_ hwnd hwndparent, //視窗的父視窗控制代碼
_in_opt_ hmenu hmenu, //視窗的選單控制代碼
_in_opt_ hinstance hinstance, //視窗的應用程式控制代碼
_in_opt_ lpvoid lpparam 作為 wm_create 訊息的附加引數 lparam 傳入的資料指標。 在建立多文件介面的客戶視窗時, lpparam 必須指向 clientcreatestruct 結構體。多數視窗將這個引數設定為 null。
); */
//4.顯示、更新視窗
//bool showwindow( hwnd hwnd, int ncmdshow );
/* showwindow 函式有兩個引數, 第乙個引數 hwnd 就是在上一步驟中成功建立視窗後返回的那個視窗控制代碼;第二個引數 ncmdshow 指定了視窗顯示的狀態,常用的有以下幾種。
sw_hide: 隱藏視窗並啟用其他視窗。
sw_show: 在視窗原來的位置以原來的尺寸啟用和顯示視窗。
sw_showmaximized: 啟用視窗並將其最大化顯示。
sw_showminimized: 啟用視窗並將其最小化顯示。
sw_shownormal: 啟用並顯示視窗。如果視窗是最小化或最大化的狀態,系統將其恢復到原來的尺寸和大小。應用程式在第一次顯示視窗的時候應該指定此標誌。
在呼叫 showwindow 函式之後, 我們緊接著呼叫 updatewindow 來重新整理視窗,就好像我們買了新房子,需要裝修一下。updatewindow 函式的原型宣告如下:
bool updatewindow( hwnd hwnd );
其引數 hwnd 指的是建立成功後的視窗的控制代碼。 updatewindow 函式通過傳送乙個wm_paint 訊息來重新整理視窗, updatewindow 將 wm_paint 訊息直接傳送給了視窗過程函式進行處理, 而沒有放到我們前面所說的訊息佇列裡, 請讀者注意這一點。 關於wm_paint 訊息的作用和視窗過程函式, 後面我們將會詳細講解。
到此,乙個視窗就算建立完成了。
*/ showwindow(hwnd,sw_show);
updatewindow(hwnd);
//5.訊息迴圈
/* 在建立視窗、顯示視窗、更新視窗後,我們需要編寫乙個訊息迴圈,不斷地從訊息佇列中取出訊息,並進行響應。要從訊息佇列中取出訊息,我們需要呼叫 getmessage()函式
所謂的訊息迴圈,其實就是乙個死迴圈,不斷的通過getmessage捕捉著視窗的訊息,再通過translatemessage將虛擬鍵訊息轉換為字元訊息,然後通過dispatchmessage將訊息分派給我們的視窗程式進行處理(所謂處理就是呼叫我們定義的視窗處理函式winproc)
*/ msg msg;
while (getmessage(&msg,null,0,0))
/*dispatchmessage 函式分派乙個訊息到視窗過程,由視窗過程函式對訊息進行處理。dispachmessage 實際上是將訊息回傳給作業系統,由作業系統呼叫視窗過程函式對訊息進行處理( 響應)。
*/}
win32畫窗體背景
背景 應產品需求將視窗載入時的loading.gif換了一張,原先是白底的gif,然後換了一張黑底的gif,放上去真的好醜,因為窗體的背景色是白色。然後就需要我給窗體畫個背景顏色融合這個新的gif,踩了很多opengl ondraw等很多坑,這裡先po一下 void onpaint hdc hdc ...
WIN32視窗建立
win32視窗建立過程 1 定義視窗類 在msdn中找到函式原型 winmain 2 定義視窗處理函式 在msdn中找到原型 windowproc 3 設計視窗類 4 註冊視窗類 registerclass registerclas 5 建立視窗 createwindow createwindowe...
win32動態生成窗體選單
include windows.h define id file exit 9001 定義選單的id號 define id stuff go 9002 const char g szclassname mywindowsclass 定義視窗類的名稱陣列 lresult callback wndpro...