C語(yǔ)言創(chuàng)建windows窗口實(shí)例
耐得住寂寞,禁得起誘惑,這就是程序人生
步驟:
1.在WinMain中定義各種變量
2.注冊(cè)窗口類RegisterClass
3.創(chuàng)建窗口CreateWindow
4.顯示窗口和更新窗口
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
5.消息循環(huán)
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
完整代碼:
#include <windows.h>
LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
MSG msg;
HWND hwnd;
static TCHAR szAppName[] = "hl";
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.lpfnWndProc = MyProc;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName= szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("error"),TEXT("title"),MB_ICONERROR);
return 0;
}
hwnd = CreateWindow(szAppName,
TEXT("Hello"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
while(GetMessage(&msg,hwnd,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
相關(guān)文章
通過(guò)一個(gè)小例子來(lái)簡(jiǎn)單理解C語(yǔ)言中的內(nèi)存空間管理
這篇文章主要介紹了通過(guò)一個(gè)小例子來(lái)簡(jiǎn)單理解C語(yǔ)言中的內(nèi)存空間管理,涉及到堆和棧等數(shù)據(jù)結(jié)構(gòu)的基本知識(shí),需要的朋友可以參考下2015-11-11matlab?GUI指紋識(shí)別門禁系統(tǒng)介紹及源碼實(shí)現(xiàn)
這篇文章主要為大家介紹了matlab?GUI指紋識(shí)別門禁系統(tǒng)的介紹及源碼實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02關(guān)于C++出現(xiàn)Bus error問(wèn)題的排查與解決
項(xiàng)目代碼中經(jīng)常出現(xiàn)莫名其妙的Bus error問(wèn)題,并且代碼中增加很多try catch 后依然不能將錯(cuò)誤捕獲,一旦Bus erro出現(xiàn),進(jìn)程直接崩潰掉,所以本文給大家介紹了關(guān)于C++出現(xiàn)Bus error問(wèn)題的排查與解決,需要的朋友可以參考下2024-01-01C語(yǔ)言實(shí)現(xiàn)超市管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)超市管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07利用Debug調(diào)試代碼解決0xC0000005:?讀取位置?0x0000000000000000?時(shí)發(fā)生訪問(wèn)沖突問(wèn)
這篇文章主要介紹了利用Debug調(diào)試代碼解決0xC0000005:?讀取位置?0x0000000000000000?時(shí)發(fā)生訪問(wèn)沖突,本文給大家分享完美解決方案,需要的朋友可以參考下2023-03-03C語(yǔ)言程序中結(jié)構(gòu)體的內(nèi)存對(duì)齊詳解
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言程序中結(jié)構(gòu)體的內(nèi)存對(duì)齊的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下2022-11-11C++調(diào)用python(執(zhí)行py文件)的全過(guò)程
這篇文章主要給大家介紹了關(guān)于C++調(diào)用python(執(zhí)行py文件)的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-12-12