win32窗口创建六部曲
来源:互联网 发布:ubuntu怎么安装mysql 编辑:程序博客网 时间:2024/06/08 19:10
1.定义窗口类
2.注册窗口
3.创建窗口
4.显示窗口
5.消息循环
6.获取消息
首先得创建一个函数指针
LRESULT WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
return DefWindowProc(hwnd, message, wparam, lparam);
}
1.定义窗口类
WNDCLASS wc; // EX
wc.cbClsExtra = NULL; // 忽略:窗口类附加数据缓冲区.
wc.cbWndExtra = NULL; // 忽略:窗口附加数据缓冲区
wc.hInstance = hInstanc; //实例句柄
wc.hbrBackground = NULL; // 窗口背景
wc.hCursor = NULL;// 光标
wc.hIcon = NULL; //图标
wc.lpfnWndProc = (WNDPROC)WndProc; //????
wc.lpszClassName = _T("mywin");
wc.lpszMenuName = NULL;
wc.style = NULL;//风格
2.注册窗口
RegisterClass(&wc);
3.创建窗口
HWND hwnd;
hwnd = CreateWindow(wc.lpszClassName, _T("我的窗口"), WS_OVERLAPPEDWINDOW, 100, 100, 400, 500, nullptr, nullptr, hInstance, nullptr);
4.显示窗口
ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);
5.消息循环
while (GetMessage(&msg, hwnd,NULL,0))//6.1获取消息
{
TranslateMessage(&msg);//6.2翻译消息
DispatchMessage(&msg);//6.3消息派发
}
代码+运行结果:
#include<Windows.h>
#include<tchar.h>
LRESULT WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
return DefWindowProc(hwnd, message, wparam, lparam);
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hpInstance,
LPSTR cmd,
int show)
{
//1.设计窗口
WNDCLASS wc;
wc.style = CS_HREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.lpszMenuName = nullptr;
wc.lpszClassName = _T("HelloWorld");
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.hInstance = hInstance;
wc.hIcon = nullptr;
wc.hCursor = nullptr;
wc.hbrBackground = nullptr;
//2.注册窗口
RegisterClass(&wc);
//3.创建窗口
HWND hwnd;
hwnd = CreateWindow(wc.lpszClassName, _T("我的窗口"), WS_OVERLAPPEDWINDOW, 100, 100, 400, 500, nullptr, nullptr, hInstance, nullptr);
//4.显示窗口
ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);
//5.获取消息
MSG msg = { 0 };
//6.消息循环
while (GetMessage(&msg, hwnd,NULL,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
- win32窗口创建六部曲
- Win32中创建窗口
- Win32窗口创建流程--
- win32 创建窗口
- win32创建空窗口
- win32创建窗口流程
- WIN32窗口创建
- win32(2)--窗口创建
- WIN32 SDK 创建窗口实例
- 纯Ruby创建Win32窗口
- win32程序窗口的创建
- Win32创建窗口的过程
- win32程序窗口的创建
- Win32下创建异形窗口
- Win32汇编之创建窗口
- 创建一个win32窗口程序
- WIN32入门---创建一个窗口
- win32的创建窗口代码
- 自学PHP与参加PHP培训的区别到底有多大
- 复选框单选:js dm方法
- setTimeout 深度剖析
- Go使用Base64编解码
- js bootstrap modal 点击空白 不自动关闭
- win32窗口创建六部曲
- 最近公共祖先 (map的用法,string类型empty函数)
- 基于proteus的51单片机仿真实例六十二、串口发送和接收字符串实例
- [积累] 查看Mysql所使用的配置信息
- QT 5 translate, scale, rotate and shear for QGraphicsItem
- 正则表达式工具
- Nginx+PHP 配置
- 多线程串口称重函数库
- java 两种xml解析方式