Windows建立視窗程式

2021-06-18 06:07:32 字數 1583 閱讀 5367

windows中建立乙個視窗程式

必須 經過幾個步驟

1.設計 winmain函式

2.設計wndclass視窗類

3.註冊視窗類registerclass

4.建立視窗 createwindow

5.顯示 更新視窗  showwindow updatewindow

6.編寫訊息迴圈 getmessage

7.編寫視窗過程函式 windowproc 

遵循以上步驟 編寫詳細**如下:

#include #include lresult callback windowproc(

hwnd hwnd, // handle to window

uint umsg, // message identifier

wparam wparam, // first message parameter

lparam lparam // second message parameter

);int winapi winmain(

hinstance hinstance, //當前應用程式的例項控制代碼

hinstance hprevinstance, //應用程式前乙個例項的前乙個例項控制代碼.

lpstr lpcmdline, //命令列引數 例:test.exe /min

int ncmdshow) //視窗顯示狀態 放大 ,縮小 隱藏

return msg.lparam;

}/*while利用 while迴圈 呼叫getmessage接受訊息 第乙個為訊息結構體 接受到的訊息將儲存在msg結構體變數中 第二個指定接受屬於哪個視窗的訊息

第三個為 接受訊息最小的值 第四個為接受訊息的最大值 .如果最小和最大的訊息指定接受值為0,那麼將接收所有訊息.

getmessage函式 如果 指向的 訊息結構體 為無效指標 或者 視窗控制代碼 無效 將返回-1 接收到wm_quit訊息成功退出程式 返回0

translatemessage(&msg)將虛擬鍵訊息轉換為字元訊息 例如 你按了鍵 產生了wm_keydown按下 和wm_keyup鬆開的訊息

translatemessage會將那兩條訊息 轉為一條wm_char字元訊息 投遞到訊息佇列中 ,translatemessage不會修改原有的訊息.

dispatchmessage將訊息將由作業系統 ,然後作業系統將呼叫 視窗過程函式 分別對訊息進行處理.

至於 return msg.lparam;等見 wm_close中的注釋

*/lresult callback windowproc(

hwnd hwnd, // 指向的視窗控制代碼

uint umsg, // 訊息識別符號

wparam wparam, // 訊息的擴充套件資訊

lparam lparam // 訊息的擴充套件資訊

) return 0;

}

執行例項:

windows應用程式 二 建立視窗

我們在建立視窗時需要的過程 關於訊息迴圈 因為處理器同時只能執行乙個程式 因此我們需要作業系統去排程程式 因此我們只是將訊息傳給作業系統 等待回應從而由作業系統來顯示我們需要的視窗 wndproc 視窗過程負責用來響應某一類視窗收到的各種windows訊息 視窗標題 window caption c...

DirectX建立Windows視窗

過程 winmain 視窗類 註冊視窗類 建立視窗 顯示和更新視窗 訊息迴圈 視窗過程 include define window class ugpdx define window title demo window lresult winapi msgproc hwnd hwnd,uint ms...

Windows執行機理 建立視窗

windows執行機理這系列文章都是來至於 零基礎學qt4程式設計 吳迪,個人覺得寫得很好,所以進行了搬運和個人加工 windows 視窗在建立之前,其屬性必須設定好,所謂屬性包括類的名字 圖示 游標及視窗過程處理函式等屬性。為了設定這些屬性,windows 要求註冊視窗類,一經註冊,就可以建立更多...