0x00 流程
1 定義視窗類 //視窗的模板,包含視窗名稱、視窗過程等
2 註冊視窗類 //告知作業系統定義的視窗類,後續作業系統可以根據此模板建立視窗
3 建立視窗 //建立視窗,預設是不顯示的
4 顯示視窗 //將視窗顯示出來
5 訊息迴圈 //每個程式都有其訊息佇列,作業系統將視窗上的所有動作都轉換為訊息,放入訊息佇列中. 當視窗關閉後,作業系統獲取不到視窗訊息,此時getmessage返回false,訊息迴圈退出,程式結束
6 視窗過程 //當前視窗對訊息採取某種操作
0x01 知識掌握
標頭檔案windows.h
tchar.h
資料型別
hwnd
wndclass
msg 函式
_twinmain
//視窗程式入口點函式
registerclass
//註冊乙個視窗類
createwindow
//建立視窗
showwindow
//顯示視窗
getmessage
//從呼叫執行緒的訊息佇列中檢索訊息
translatemessage
//將虛擬鍵資訊轉換為字元訊息。
dispatchmessage
//向視窗過程傳送訊息
(本例中視窗過程為
mainwndproc)
postquitmessage
//向系統指示執行緒已請求終止(退出
) defwindowproc
//呼叫預設視窗過程
,將訊息交給系統處理
messagebox
//顯示訊息視窗
mainwndproc
//處理傳送到視窗的訊息的應用程式定義的函式
(本例中視窗過程為
mainwndproc)
文件查詢
0x02 **
#include
#include
lresult
callback
mainwndproc(
hwnd
hwnd
,uint
umsg
,wparam
wparam
,lparam
lparam);
intwinapi
_twinmain
(hinstance
hinstance
,hinstance
hprevinstance
,lpwstr
lpcmdline
,int
ncmdshow)
; wndclass.lpfnwndproc = mainwndproc;
wndclass.hinstance =
hinstance;
wndclass.lpszclassname =
l"firstwindow";
//註冊視窗類 if
(!registerclass
(&wndclass))
//建立視窗
hwnd =
createwindow
(l"firstwindow",
l"視窗程式",
,cw_usedefault,
cw_usedefault,
500,
600,
null,
null,
hinstance,
null );
if(hwnd ==
null)
//顯示視窗 if
(!showwindow(hwnd,
sw_show))
//訊息處理
msgmsg = ;
while
(getmessage
(&msg,hwnd,0,0))
return0;
} //視窗過程
(window procedure)
lresult
callback
mainwndproc(
hwnd
hwnd
,
// handle to window
uint
umsg
,
// message identifier
wparam
wparam
,
// first message parameter
lparam
lparam
)
// second message parameter
return0;
}
第乙個windows程式
includeint winapi winmain hinstance hinstance,hinstance hprevinstance,lpstr ipcmdline,int ncmdshow 如題,第乙個win程式,執行結果如圖 首次執行過程出現這個問題 發現是message寫錯,首字母沒有大...
0 第乙個Django程式
建立django專案命令 django admin startproject djangowebtest2啟動django測試環境 修改urls.py from django.conf.urls import url from django.contrib import admin from dja...
python 窗體程式 第乙個Python窗體程式
新建ui mainwindow.py檔案 encoding utf 8 qt相關和十字游標 from pyqt4.qtgui import from pyqt4.qtcore import from pyqt4 import qtgui,qtcore class ui mainwindow qtgu...