第乙個WIndows視覺化視窗的建立

2021-08-19 10:05:59 字數 1778 閱讀 3289

今天照著書打了第乙個windows視覺化的視窗大概,寫一些自己理解的東西。

自己的感覺就是首先需要定義函式視窗的說明,可能在winmain()函式中會用到這個定義的視窗函式。

然後開始編寫 winmain()函式,函式的引數有點多,初學記起來有些困難。

不是很能理解那些引數的意義。感覺首先要做的事情就是定義乙個視窗的類,然後在給這個視窗的類裡面的東西賦值,

裡面有一堆變數名稱,依次的進行賦值。

然後呼叫視窗類的註冊函式進行註冊,成功以後會返回乙個控制代碼,而那個控制代碼hwnd可以給之後的視窗的函式裡面的形參賦值。

接下來顯示視窗和重新整理視窗,訊息迴圈的那個邏輯,為什麼要那樣,現在不是很清楚。慢慢再看書吧。

/*

這裡寫winmain函式的定義

int winapi winmain(hinstance hthisinst,hinstance hprevinst,lpstr lpszcmd,int ncmdshow);

*/檔案中包含應用程式中所需的資料型別和資料結構的定義

#include#include//函式的視窗說明

lresult callback wndproc(hwnd, uint, wparam, lparam);

int winapi winmain(

hinstance hinstance,

hinstance hprevinstance,

lpstr lpcmdline,

int ncmdshow)

//------以下建立視窗--------

//返回值用於給之後的callback那個函式來呼叫

hwnd = createwindow(

szwindowclass,//視窗類名

sztitle,//視窗例項的標題名

cw_usedefault, cw_usedefault,//視窗的左上角座標為預設值

cw_usedefault, cw_usedefault,//視窗的高和寬為預設值

null,//視窗無預設值

null,//視窗無主選單

hinstance,//建立此視窗應用程式的當前控制代碼

null//不使用該值

);if (!hwnd)

showwindow(hwnd, ncmdshow);//顯示視窗

updatewindow(hwnd);//繪製使用者區

while (getmessage(&msg, null, 0, 0))

return (int)msg.wparam;//程式終止時將資訊返回系統

}//-----以下是視窗函式的**

lresult callback wndproc(

hwnd hwnd,

uint message,

wparam wparam,

lparam lparam)

return 0;

}

補充:看了書,和我昨天想的應該是一樣的,windows應用程式的執行以訊息為核心,windows將產生的訊息放入應用程式的訊息佇列 中,應用程式的winmain函式從訊息迴圈提取佇列中的訊息,並將其傳遞給視窗函式的響應過程處理。

其中getmessage的作用是從訊息佇列中讀取一條訊息,並將訊息放在乙個msg結構中。

translatemessage函式負責將訊息的虛擬鍵轉換為字元資訊

dispatchmessage函式(dispatch 調遣)將引數lpmsg指向的訊息傳送到制定的視窗函式中,當getmessage函式返回零值,即會檢索到wm_quite訊息,程式將結束迴圈並退出。

第乙個windows視窗程式

includeint winapi winmain hinstance hinstance,hinstance hprevinstance,pstr szcmdline,int icmdshow 類似命令列的 include,不過更像c 的 include,包含了其他許多的標頭檔案。視窗版也包含了乙...

入門 第乙個python視覺化程式 基於pyqt5

不得不說 py的gui實在是太難上手了 我現在突然很懷念mfc vb c 這些東西了 因為控制項的 你只要一點就能進入檢視 而pyqt5 pyside2 都不可以 你要看就看全部的 你要改你也只能轉換成py檔案再改 你卻得不到實時的反饋和互動 我也不知道我改了這段 跑出來會怎麼樣 跑了之後又開始難受...

第乙個Windows視窗應用程式

學習目的 熟悉開發工具visual c 6.0和msdn 2001的使用.應用windows api函式,手工編寫具有最基本構成的windows視窗應用程式 包含winmain入口函式,訊息迴圈,視窗函式 並除錯成功.1.熟悉開發工具 熟悉開發工具visual studio的使用 在visual s...