Windows编程入门-创建第一个Window窗口
来源:互联网 发布:网络诈骗主题班会总结 编辑:程序博客网 时间:2024/06/05 17:23
从头创建windows窗口程序:
1、创建窗口类;2、注册窗口类;3、创建窗口;4、显示窗口;5、刷新窗口;6、消息循环;
6.1、获取消息;6.2、翻译消息;6.3、分发消息;
7、消息处理函数处理消息。
示例代码如下:
#include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT ("HelloWin") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; 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 ("This program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, // window class name TEXT ("The Hello Program"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL) ; // creation parameters ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ;}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch (message) { case WM_CREATE: PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ; return 0 ; case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; EndPaint (hwnd, &ps) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ;}
关键代码解释:
窗口类:
typedef struct tagWNDCLASS { UINT style;//窗口风格 WNDPROC lpfnWndProc;//窗口消息处理函数 int cbClsExtra;//窗口类结构体后面额外分配的内存空间字节数,系统初始化为0 int cbWndExtra;//窗口实例后额外分配的内存空间自己数,系统初始化为0, HINSTANCE hInstance; //应用程序实例句柄 HICON hIcon;//程序图标 HCURSOR hCursor; //程序光标 HBRUSH hbrBackground; //客户区背景刷颜色 LPCTSTR lpszMenuName; //菜单 LPCTSTR lpszClassName; //类名} WNDCLASS, *PWNDCLASS;
创建窗口函数:
HWND WINAPI CreateWindow( _In_opt_ LPCTSTR lpClassName, //窗口类名称 _In_opt_ LPCTSTR lpWindowName, //窗口名称 _In_ DWORD dwStyle, //窗口风格 _In_ int x,//窗口x坐标 _In_ int y, //窗口y坐标 _In_ int nWidth,//窗口宽 _In_ int nHeight,//窗口高 _In_opt_ HWND hWndParent, //父窗口句柄,没有设为NULL(即父窗口为桌面窗口) _In_opt_ HMENU hMenu,//窗口菜单句柄 _In_opt_ HINSTANCE hInstance,//窗口实例句柄 _In_opt_ LPVOID lpParam//创建窗口时传给WM_CREATE消息的参数);
0 0
- Windows编程入门-创建第一个Window窗口
- Windows程序设计--创建第一个窗口
- 创建第一个窗口
- 【Window编程】Step.1 我的第一个Windows程序
- 创建你的第一个带有窗口的Windows程序
- 创建第一个D3D窗口
- 创建第一个OpenGL窗口
- Windows编程-创建窗口
- Windows程序设计:第一个窗口
- 创建第一个windows服务
- 最简单的Windows窗口程序,使用main函数,隐藏控制台等,适合window编程入门
- 使用VS创建第一个窗口程序
- window.showModalDialog在第二个窗口中获取第一个窗口的window对象
- windows编程第一个程序
- 你的第一个Windows程序——创建一个窗口
- 【windows程序设计】第一个小窗口程序
- Windows程序设计--第一个窗口程序
- 我的第一个Windows窗口
- MYSQL的查增删改
- fork同步问题
- Activity相关总结
- C# 封箱与装箱操作
- 随想
- Windows编程入门-创建第一个Window窗口
- 搭建linux+nginx+mysql+php环境
- Github 上手 --- 分支
- 通过驱动名称得到(T雪工具)驱动对象名_ObReferenceObjectByName_函数的用法
- 排序
- 索引
- 欢迎使用CSDN-markdown编辑器
- C# is和as
- wikioi1169 传纸条