久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
windows 窗口創建
[打印本頁]
作者:
liuyy
時間:
2015-1-11 19:24
標題:
windows 窗口創建
1、設計窗口類
2、注冊窗口
3、創建窗口
4、顯示窗口與更新窗口
5、消息循環
6、窗口函數
1.設計窗口
typedef struct tagWNDCLASS {
UINT style; //窗口的樣式
WNDPROC lpfnWndProc; //名回調函數的名字
int cbClsExtra; //窗口類無擴展
int cbWndExtra; //窗口實例無擴展
HINSTANCE hInstance; //當前實例句柄
HICON hIcon; //窗口的圖標
HCURSOR hCursor; //光標的形狀與類型
HBRUSH hbrBackground; //窗口的背景
LPCSTR lpszMenuName; //設定菜單
LPCSTR lpszClassName; //設定窗口名字(類名)
} WNDCLASS, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
注:以上是設計窗口的一個結構體 ,
作用是確定窗口的 。
圖標、窗口樣式、回調函數、背景、光標、類名等屬性
2.注冊窗口
RegisterClass(&XXX);
注:XXX代表 某某某設計窗口的結構體名+“&”是取地址
作用是導入內存
3.創建窗口
CreaeWindow 創建窗口函數原型
HWND CreateWindow(
LPCTSTR lpClassName, //窗口類名(與設計函數的類名相同)
LPCTSTR lpWindowName, //窗口標題
DWORD dwStyle, //窗口樣式,多種樣式
int x,
//x坐標 (屏幕坐標)
int y, //Y坐標
(屏幕坐標
)
int nWidth,
//寬
int nHeight, //高
HWND hWndParent, //父窗口
HMENU hMenu, //加載菜單的句柄
HANDLE hlnstance, //創建此窗口的應用程序的當前句柄(PID)(也是設計窗口中的.hInstance)
LPVOID lpParam // 這個一般是NULL。不用的
);
注:以上是一個創建窗口的函數 <CreaeWindow>創建窗口后
函數會返回一個句柄 這時要用一個 窗口句柄類型(HWND)
的變量來接收這個返回值。
作用是確定:
窗口的 標題、窗口樣式、窗口位置、窗口大小、菜單、父窗口等等。
4、
顯示窗口
與更新窗口
顯示窗口
ShowWindow(XXXX, //第一個參數是 窗口句柄(HWND)
SW_SHOW //指定窗口如何顯示
);
更新窗口
UpdateWindow(hWnd //窗口句柄
);
5、消息循環
下面是代碼:
MSG msg; //聲明消息結構
while(GetMessage(&msg,NULL,0,0)) //消息循環
{
TranslateMessage(&msg); //讓Windows為與鍵盤相關的消息做一些轉換
DispatchMessage(&msg); //分派消息到窗口過程函數中對消息處理
}
6、窗口函數
//窗口過程函數的實現(消息處理函數)
LRESULT CALLBACK MyWindowProc(
HWND hwnd, // handle to window 窗口句柄
UINT uMsg, // message identifier
消息標識
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_PAINT:
{
TCHAR str[] = _T("這是一個Windows的SDK程序!");
HDC hDc;//聲明HDC數據結構
PAINTSTRUCT Ps;
hDc = BeginPaint(hwnd,&Ps); //獲取設備環境句柄
SetTextColor(hDc,RGB(13,25,200)); //設置文本顏色
TextOut(hDc,0,0,str,18); //輸出文字
EndPaint(hwnd,&Ps); //釋放資源
break;
}
case WM_CLOSE: //點擊"X"按鈕時發送此消息,使消息循環停止
if(IDYES == MessageBox(hwnd,_T("是否要退出?"),_T("提示"),MB_YESNO))
{
DestroyWindow(hwnd); //銷毀窗口,發送WM_DESTROY消息,注意程序進程還沒退出
}
break;
case WM_DESTROY:
PostQuitMessage(NULL); //進程結束,完全退出程序
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,_T("鼠標左鍵按下"),_T("提示"),MB_OK);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam); //處理未處理的消息
break;
}
return 0;
}
作者:
yyxtj
時間:
2015-4-18 16:15
好東西,學習一下
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91中文在线
|
亚洲天堂男人天堂
|
久久国产一区二区三区
|
伊人久久艹
|
久久精品国产一区
|
日本久久久久久
|
亚洲一区二区三区中文字幕
|
久久精品欧美一区二区
|
一本久
|
国产日本在线
|
亚洲精品一区二区三
|
成人香蕉网
|
一区二区三区国产
|
男人操女人的网站
|
明日边缘
|
精品视频免费在线观看
|
在线成人免费视频
|
国产黄网
|
好色影院
|
日批视频网站
|
黄色影视在线观看
|
国产精品美女在线
|
男人影院在线观看
|
日韩黄色网址
|
日韩激情一区二区
|
日韩伊人
|
在线观看黄色小视频
|
天天综合天天做天天综合
|
国产精品网站在线观看
|
91日韩在线
|
欧美综合一区二区
|
欧美在线免费观看
|
亚洲在线一区二区
|
黄色免费小视频
|
中文字幕在线免费观看视频
|
免费网站观看www在线观
|
成人做受黄大片
|
18成人免费观看网站
|
欧美午夜精品
|
麻豆精品一区
|
天天草天天
|