Windows窗口创建
来源:互联网 发布:武夷山网络花店 编辑:程序博客网 时间:2024/06/07 14:06
Windows窗口创建流程:
1、创建入口函数WinMain()
2、注册窗口类
3、实现回调函数功能
4、显示窗口
5、更新窗口
6、消息循环
回调函数为WinProc,具体定义如下:
LRESULT CALLBACK WinProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam )
函数解析为:
1、每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:
窗口句柄(Window Handle) HWND,
消息ID(Message ID) UINT,
和两个消息参数(wParam, lParam)WPARAM、LPARAM,
WndProc的第一个参数hWnd就是当前接收消息的窗口句柄,第二个参数就是被传送过来的消息,第三、第四个参数都是附加在消息上的数据,这和MSG结构体是一样的。
2、LRESULT结构体为:
LRESULT CALLBACK WinProc( //WinProc名称可自由定义
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
LRESULT为窗口程序(WinProc)指针。
//创建入口函数int WINAPI WinMain( HINSTANCE hInstance, //应用程序当前实例的句柄。 HINSTANCE hPrevInstance,//应用程序的先前实例的句柄。对于同一个程序打开两次,出现两个窗口第一次打开的窗口就是先前实例的窗口。对于一个32位程序,该参数总为NULL。 LPSTR lpCmdLine,//指向应用程序命令行的字符串的指针,不包括执行文件名。 int ShowCmd//指明窗口如何显示,具有不同参数 ){HWND hWnd=0;MSG nMsg={0};/*MSG:消息结构体typedef struct tagMSG { HWND hwnd;//消息所属的窗口 UINT message;//消息的标识符, 为WM_XXX宏 WPARAM wParam;//wParam和lParam,用于指定消息的附加信息 LPARAM lParam; DWORD time;//消息投递到消息队列中的时间 POINT pt;//鼠标的当前位置 } MSG;*///注册窗口类WNDCLASS cs={0};/*WNDCLASS:窗口信息结构体typedef struct _WNDCLASS {UINT style;// 窗口类型WNDPROC lpfnWndProc;//窗口处理函数int cbClsExtra;//窗口扩展int cbWndExtra;//窗口实例扩展HINSTANCE hInstance;//实例句柄HICON hIcon;//窗口的最小化图标HCURSOR hCursor;//窗口鼠标光标HBRUSH hbrBackground;//窗口背景色LPCTSTR lpszMenuName;//窗口菜单LPCTSTR lpszClassName;// 窗口类名} WNDCLASS, *LPWNDCLASS;*/cs.cbClsExtra=0;cs.cbWndExtra=0;cs.hbrBackground=(HBRUSH)(COLOR_WINDOW+2);cs.hCursor=NULL;cs.hIcon=NULL;cs.hInstance=hInstance;cs.lpfnWndProc=(WNDPROC)WinProc;cs.lpszClassName="Main";cs.lpszMenuName=NULL;cs.style=CS_VREDRAW|CS_HREDRAW;RegisterClass(&cs);//实现注册窗口//创建窗口hWnd=CreateWindow("Main","Windows",WS_OVERLAPPEDWINDOW,200,200,500,500,NULL,NULL,hInstance,NULL);/* CreateWindow函数参数解析: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, // 初始 x 方向尺寸_In_ int nHeight, // 初始 y 方向尺寸_In_opt_ HWND hWndParent, // 父窗口句柄_In_opt_ HMENU hMenu, // 窗口菜单句柄_In_opt_ HINSTANCE hInstance, // 程序实例句柄_In_opt_ LPVOID lpParam // 创建参数);*///显示窗口ShowWindow(hWnd,SW_SHOW);//更新窗口UpdateWindow(hWnd);//消息循环while(GetMessage(&nMsg,0,NULL,NULL)){TranslateMessage(&nMsg);DispatchMessage(&nMsg);}return 0;}
0 0
- 创建一个windows窗口
- windows窗口创建过程
- Windows创建窗口程序
- Windows窗口的创建
- Windows窗口的创建
- Windows窗口的创建
- Windows 窗口创建(下篇)
- windows程序设计 创建窗口
- Windows窗口创建
- 《Windows API》创建窗口
- Windows编程-创建窗口
- Windows动态窗口创建
- 创建windows窗口
- windows创建一个窗口
- 创建Windows窗口
- windows 应用程序窗口的创建
- Windows下创建OpenGL窗口
- windows下窗口的创建
- Android实现批量照片上传至服务器,拍照或者从相册选择
- 剑指offer 二进制中1的个数
- 小米4c 搜不到自家wifi
- Java中集合框架的共性功能
- poj_3169_Layout 差分约束
- Windows窗口创建
- android 调试framework 的方法
- 2016年某某公司的笔试题
- 前端
- optionParser模块的使用方法
- 拖延症
- 【Python爬虫】入门知识
- Libsvm学习-2 安装完使用中遇到的几个问题
- Tcp投票通信例子