win32的框架

1.入口函数 2.窗口注册类信息 3.窗口创建 4。显示窗口 5.更新窗口 6.消息循环 7.入口函数结束

WNDCLASSEX wcex;窗口类结构

wcex.cbSize = sizeof(WNDCLASSEX);//结构内存大小

//类风格wcex.style CS_HREDRAW 水平刷新 CS_VREDRAW垂直刷新 CS_DBLCLKS 窗体鼠标双击响应事件

 //  函数:  MyRegisterClass()
//
// 目的: 注册窗口类。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
//窗口类结构
WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX);//结构内存大小
//类风格wcex.style CS_HREDRAW 水平刷新 CS_VREDRAW垂直刷新 CS_DBLCLKS 窗体鼠标双击响应事件
wcex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
wcex.lpfnWndProc = WndProc;//消息回调函数
wcex.cbClsExtra = ;//类的额外信息
wcex.cbWndExtra = ;//窗口的额外信息
wcex.hInstance = hInstance;//窗口的实例句柄
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_CLASS02));//图标
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);//光标
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+);//窗体的背景颜色
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_CLASS02);//窗体的菜单
wcex.lpszClassName = szWindowClass;//窗口类名
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));//小图标 return RegisterClassEx(&wcex);//系统函数返回一个系统的注册窗口类的函数调用
}

创建主

 //
// 函数: InitInstance(HINSTANCE, int)
//
// 目的: 保存实例句柄并创建主窗口
//
// 注释:
//
// 在此函数中,我们在全局变量中保存实例句柄并
// 创建和显示主程序窗口。
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;//窗口句柄 hInst = hInstance; // 将实例句柄存储在全局变量中 //创建窗口
hWnd = CreateWindow(szWindowClass,//窗口类名 类名必须和注册名一致否则创建不成功
_T("第一个Windows窗口")/*szTitle*/,//窗口标题名
//WS_OVERLAPPEDWINDOW,窗口风格
WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX,
/*
WS_OVERLAPPED:用于产生一个叠层窗口,都有标题栏和边框
WS_CAPTION:有标题栏的窗口
WS_SYSMENU:创建一个标题栏上具有系统菜单的窗口,需要ws_caption一起使用
WS_MINIMAZEBOX:创建具有最小化按钮窗口,必须有ws_system类型
WS_MAXIMIZBOX:创建具有最大化按钮的窗口,必须有ws_system类型。
WS_OVERLAPPEDWINDOW:创建有标题栏,系统菜单最大化最小化窗口
WS_POPUP - 弹出式
WS_POPUPWINDOW - 边框、弹出式、系统菜单
WS_SIZEBOX - 带尺寸框的粗边框
WS_SYSMENU - 系统菜单
*/
CW_USEDEFAULT,, //窗口的左上角x,y坐标,注意:如果x坐标给的是CW_USEDEFAULT,y坐标给0表示去匹配x坐标(单位为像素)
CW_USEDEFAULT, ,//窗口的宽高,同上
NULL,//父窗口句柄
NULL,//菜单句柄,如果值为null,表示默认使用注册时加载的菜单,如果不为null,创建窗口时将用这个菜单替换掉注册时菜单
hInstance,//窗口实例句柄
NULL);//保留参数 if (!hWnd)
{
return FALSE;
} ShowWindow(hWnd, nCmdShow);//显示窗口
UpdateWindow(hWnd);//更新窗口 return TRUE;
}

处理主窗口消息

 //  函数:  WndProc(HWND, UINT, WPARAM, LPARAM)
//
// 目的: 处理主窗口的消息。
//
// WM_COMMAND - 处理应用程序菜单
// WM_PAINT - 绘制主窗口
// WM_DESTROY - 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc; switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage();
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return ;
} // “关于”框的消息处理程序。
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE; case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}

窗口

最新文章

  1. AC6102 开发板千兆以太网UDP传输实验
  2. <转>关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  3. net use与shutdown配合使用,本机重启远程服务器
  4. LeetCode344:Reverse String@Python
  5. [Gym]2008-2009 ACM-ICPC, NEERC, Moscow Subregional Contest
  6. Android 可拖动列表项的ListView
  7. java 字符串 转码
  8. Python的列表排序
  9. minicom 配置
  10. Bash判断文件夹(目录)是否存在
  11. jquery,javascript -设置某一ul下的li下的 a的属性
  12. ultraedit替换所有空白行 --正则表达式使用
  13. codeforces #261 C题 Pashmak and Buses(瞎搞)
  14. UpdataData
  15. 微信小程序支付简单小结与梳理
  16. java集合的操作(set,Iterator)
  17. java并发之可见性与原子性:Syncronized和volatile
  18. 关于tensorflow conv2d卷积备忘的一点理解
  19. Servlet开发的三种方法
  20. Extjs 项目中常用的小技巧,也许你用得着(4)---Extjs 中的cookie设置

热门文章

  1. vzray服务端配置
  2. sublime text 常用插件安装
  3. Hbase PleaseHoldException错误
  4. UVA - 1213 Sum of Different Primes (不同素数之和)(dp)
  5. CGridCtrl显示图片
  6. C++基础--智能指针
  7. BZOJ 2749 [HAOI2012]外星人
  8. .NET CORE部署各种问题
  9. python利用百度云接口实现车牌识别
  10. 输入框中提示信息(html5)