今天照著書打了第乙個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...