SDK创建一个非模态,无资源窗口
来源:互联网 发布:云计算培训班 编辑:程序博客网 时间:2024/05/16 14:07
使用SDK来创建一个非模态的窗口,不涉及资源,只用注册一个窗口类,创建窗口,显示窗口,然后建立一个消息循环就够了。
首先我们使用SDK创建窗口或者是控件都需要用到类,其他的控件都有系统注册好的类,直接拿来用就可以,窗口的类我们可以自己定义然后注册就可以用了。
第一步:注册一个窗口类
我们看到,窗口程序用的是WinMain而不是控制台程序的main,把代码贴出来看一下
//1.注册窗口类WNDCLASS wcs = {};wcs.lpszClassName = L"窗口类名"; //创建的窗口的类名wcs.style = CS_HREDRAW | CS_VREDRAW; //窗口的风格wcs.lpfnWndProc = WindowProc; //窗口的回调函数wcs.hbrBackground = HBRUSH(COLOR_BACKGROUND + 1); //窗口的背景颜色,每次刷新之后填充的颜色就是这个RegisterClass(&wcs); //注册我们定义好的窗口类
第二步:创建窗口
//2.创建窗口 HWND hWnd = CreateWindow(L"窗口类名",//要用哪个类来创建窗口 L"My fiast Window",//创建的窗口的窗口名 WS_OVERLAPPEDWINDOW,//窗口的风格,WS_OVERLAPPEDWINDOW风格是创建一个顶层窗口 100, 100, 500, 500,//这四个参数表示窗口的坐标和宽高 NULL,//父窗口的句柄 NULL,//菜单 hInstance,//实例句柄 NULL//WM_CREATE消息的附加消息 );
第三步:显示窗口
第四步:创建消息循环机制
//4.创建消息循环机制 MSG msg = {}; while (GetMessage(&msg,//一个MSG结构体,包含许多消息信息 NULL,//获取那个窗口的消息,如果写NULL则表示获取当前线程的所有消息 NULL,//设置获取消息范围的最小值 NULL//设置获取消息范围的最小值 )) { DispatchMessage(&msg); //消息分发函数,把消息分发给对应的处理函数 }
GetMessage()可以从消息队列中获取一个消息,DispatchMessage()就会把消息分发给对应的窗口回调
然后我们还需要一个窗口回调函数
在窗口回调函数中可以响应各种消息,然后做出消息处理,不能处理的消息全都通过DefWindowProc()函数再返还给系统去处理,窗口回调函数的原型可以通过MSDN去查找
LRESULT CALLBACK WindowProc( _In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam ){ switch (uMsg) { case WM_CREATE: { MessageBox(hwnd, L"hahahah", L"创建了一个对话框", MB_OK); } break; case WM_CLOSE: { PostQuitMessage(WM_QUIT); } break; default: break; } return DefWindowProc(hwnd, uMsg, wParam, lParam);}
阅读全文
0 0
- SDK创建一个非模态,无资源窗口
- SDK封装的一个无边框窗口
- 用SDK创建一个简单的窗口
- SDK创建窗口
- SDK手动创建窗口
- 用SDK创建一个简单带滚动条的窗口
- Win32 SDK基础(7)—— 怎样创建一个窗口的子窗口
- windows sdk程序模板(用已有的对话框资源创建主窗口)
- WIN32 SDK 创建窗口实例
- qt创建无边框窗口
- vs创建无窗口程序
- 创建一个windows窗口
- 如何创建一个窗口
- 创建一个窗口
- DirectX 创建一个窗口
- 创建一个窗口
- [OpenGL]创建一个窗口
- 3 创建一个窗口
- hadoop 源码编译
- android 把bitmap格式转成jpg 或png格式
- 火狐主页被hao123劫持
- 网络安全基础
- tf.equal(x, y, name=None)
- SDK创建一个非模态,无资源窗口
- 1.7 空格分隔输出
- 二分图浅识
- 洛谷P3380:二逼平衡树 (树套树)
- 浅谈typedef和#define
- React Native开发之React Navigation的StackNavigator 详解
- 【信号与系统】私人回顾
- (bootstrap)
- LightOJ 1027 Dangerous Maze【期望】