Windows 0x00 第乙個視窗程式

2021-10-10 05:02:21 字數 2458 閱讀 1411

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...