第一个 Windows 应用程序
生活随笔
收集整理的這篇文章主要介紹了
第一个 Windows 应用程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include?<windows.h>
//窗口過程聲明
LRESULT?CALLBACK?WndProc(HWND,?UINT,?WPARAM,?LPARAM);
int?__stdcall?WinMain(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,?LPSTR?lpCmdline,?int?nCmdShow)
{
????const?char*?szWindowName?=?"第一個?Windows?應用程序";????//窗口標題
????const?char*?szClassName?=?"WindowClass";????????????????????//窗口類名
????//創建一個?WNDCLASSEX?結構體變量,?為其設置成員的值
????WNDCLASSEX?wndclass;
????wndclass.cbSize????????=?sizeof(WNDCLASSEX);????????????????????//結構大小
????wndclass.style?????????=?CS_HREDRAW?|?CS_VREDRAW;???????????????//水平重畫,豎直重畫
????wndclass.lpfnWndProc???=?(WNDPROC)WndProc;??????????????????????//窗口過程
????wndclass.cbClsExtra????=?0;?????????????????????????????????????//沒有額外的類內存
????wndclass.cbWndExtra????=?0;?????????????????????????????????????//沒有額外的窗口內存
????wndclass.hInstance?????=?hInstance;?????????????????????????????//實例句柄
????wndclass.hIcon?????????=?LoadIcon(NULL,?IDI_APPLICATION);???????//程序圖標
????wndclass.hCursor???????=?LoadCursor(NULL,?IDC_CROSS);???????????//鼠標樣式
????wndclass.hbrBackground?=?(HBRUSH)::GetStockObject(WHITE_BRUSH);?//背景白色
????wndclass.lpszMenuName??=?NULL;????????????????????????????????????//沒有菜單名
????wndclass.lpszClassName?=?szClassName;???????????????????????????//窗口類名
????wndclass.hIconSm???????=?NULL;??????????????????????????????????//沒有類的小圖標
????//注冊?WNDCLASSEX?結構體
????::RegisterClassEx(&wndclass);
????//創建主窗口
????HWND?hWnd?=?::CreateWindowEx(
????????0,???????????????????//dwExstyle,?擴展樣式
????????szClassName,?????????//lpClassName,?類名
????????szWindowName,?????????//lpWindowName,?標題
????????WS_OVERLAPPEDWINDOW,?//dwStyle,?窗口風格
????????CW_USEDEFAULT,???????//X,?初始?X?坐標
????????CW_USEDEFAULT,???????//Y,?初始?Y?坐標??
????????CW_USEDEFAULT,???????//nWidth,?寬度
????????CW_USEDEFAULT,???????//nHeight,?高度
????????NULL,????????????????//hWndParent,?父窗口句柄
????????NULL,????????????????//hMenu,?菜單句柄
????????hInstance,???????????//hInstance,?程序實例句柄
????????NULL);???????????????//lpparam,?用戶數據
????if(hWnd?==?NULL)
????{
????????::MessageBox(NULL,?"創建窗口出錯!",?"error",?MB_OK);
????????return?FALSE;
????}
????//顯示窗口
????::ShowWindow(hWnd,?nCmdShow);
????//刷新窗口
????::UpdateWindow(hWnd);
????//消息循環
????MSG?msg;
????while(::GetMessage(&msg,?NULL,?0,?0))
????{
????????::TranslateMessage(&msg);
????????::DispatchMessage(&msg);
????}
????return?msg.wParam;
}
//窗口過程函數
LRESULT?CALLBACK?WndProc(HWND?hWnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)
{
????const?char*?szHello?=?"Hello?World";
????switch(message)
????{
????//重繪窗口
????case?WM_PAINT:
????????HDC?hdc;
????????PAINTSTRUCT?ps;
????????hdc?=?::BeginPaint(hWnd,?&ps);
????????::TextOut(hdc,?10,?10,?szHello,?strlen(szHello));
????????::EndPaint(hWnd,?&ps);
????????break;
????//銷毀窗口
????case?WM_DESTROY:
????????::PostQuitMessage(0);
????????break;
????}
????//交給系統做默認處理
????return?::DefWindowProc(hWnd,?message,?wParam,?lParam);
}
//窗口過程聲明
LRESULT?CALLBACK?WndProc(HWND,?UINT,?WPARAM,?LPARAM);
int?__stdcall?WinMain(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,?LPSTR?lpCmdline,?int?nCmdShow)
{
????const?char*?szWindowName?=?"第一個?Windows?應用程序";????//窗口標題
????const?char*?szClassName?=?"WindowClass";????????????????????//窗口類名
????//創建一個?WNDCLASSEX?結構體變量,?為其設置成員的值
????WNDCLASSEX?wndclass;
????wndclass.cbSize????????=?sizeof(WNDCLASSEX);????????????????????//結構大小
????wndclass.style?????????=?CS_HREDRAW?|?CS_VREDRAW;???????????????//水平重畫,豎直重畫
????wndclass.lpfnWndProc???=?(WNDPROC)WndProc;??????????????????????//窗口過程
????wndclass.cbClsExtra????=?0;?????????????????????????????????????//沒有額外的類內存
????wndclass.cbWndExtra????=?0;?????????????????????????????????????//沒有額外的窗口內存
????wndclass.hInstance?????=?hInstance;?????????????????????????????//實例句柄
????wndclass.hIcon?????????=?LoadIcon(NULL,?IDI_APPLICATION);???????//程序圖標
????wndclass.hCursor???????=?LoadCursor(NULL,?IDC_CROSS);???????????//鼠標樣式
????wndclass.hbrBackground?=?(HBRUSH)::GetStockObject(WHITE_BRUSH);?//背景白色
????wndclass.lpszMenuName??=?NULL;????????????????????????????????????//沒有菜單名
????wndclass.lpszClassName?=?szClassName;???????????????????????????//窗口類名
????wndclass.hIconSm???????=?NULL;??????????????????????????????????//沒有類的小圖標
????//注冊?WNDCLASSEX?結構體
????::RegisterClassEx(&wndclass);
????//創建主窗口
????HWND?hWnd?=?::CreateWindowEx(
????????0,???????????????????//dwExstyle,?擴展樣式
????????szClassName,?????????//lpClassName,?類名
????????szWindowName,?????????//lpWindowName,?標題
????????WS_OVERLAPPEDWINDOW,?//dwStyle,?窗口風格
????????CW_USEDEFAULT,???????//X,?初始?X?坐標
????????CW_USEDEFAULT,???????//Y,?初始?Y?坐標??
????????CW_USEDEFAULT,???????//nWidth,?寬度
????????CW_USEDEFAULT,???????//nHeight,?高度
????????NULL,????????????????//hWndParent,?父窗口句柄
????????NULL,????????????????//hMenu,?菜單句柄
????????hInstance,???????????//hInstance,?程序實例句柄
????????NULL);???????????????//lpparam,?用戶數據
????if(hWnd?==?NULL)
????{
????????::MessageBox(NULL,?"創建窗口出錯!",?"error",?MB_OK);
????????return?FALSE;
????}
????//顯示窗口
????::ShowWindow(hWnd,?nCmdShow);
????//刷新窗口
????::UpdateWindow(hWnd);
????//消息循環
????MSG?msg;
????while(::GetMessage(&msg,?NULL,?0,?0))
????{
????????::TranslateMessage(&msg);
????????::DispatchMessage(&msg);
????}
????return?msg.wParam;
}
//窗口過程函數
LRESULT?CALLBACK?WndProc(HWND?hWnd,?UINT?message,?WPARAM?wParam,?LPARAM?lParam)
{
????const?char*?szHello?=?"Hello?World";
????switch(message)
????{
????//重繪窗口
????case?WM_PAINT:
????????HDC?hdc;
????????PAINTSTRUCT?ps;
????????hdc?=?::BeginPaint(hWnd,?&ps);
????????::TextOut(hdc,?10,?10,?szHello,?strlen(szHello));
????????::EndPaint(hWnd,?&ps);
????????break;
????//銷毀窗口
????case?WM_DESTROY:
????????::PostQuitMessage(0);
????????break;
????}
????//交給系統做默認處理
????return?::DefWindowProc(hWnd,?message,?wParam,?lParam);
}
?
?
轉載于:https://www.cnblogs.com/LinFx/archive/2009/02/16/2123695.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的第一个 Windows 应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多对多关联查询sql语句
- 下一篇: java信息管理系统总结_java实现科