通过WinMain函数创建窗口
来源:互联网 发布:微店淘宝搬家助手 编辑:程序博客网 时间:2024/06/14 10:09
//WinMain 程序#include <windows.h>#include <stdio.h>/********************************************** * 窗口过程函数的声明 * WinSunProc 是函数名 可以随便起 但要有意义 **********************************************/LRESULT CALLBACK WinSunProc( HWND hwnd, // 窗口句柄 UINT uMsg, // 消息代码 WPARAM wParam, // 消息代码的两个附加参数 LPARAM lparam );/*********************************************** WinMain 函数 主函数、入口函数 LP long point 长指针 窗口的创建过程: 1.设计一个窗口类 2.注册窗口类 3.创建窗口 4.显示及更新窗口***********************************************/int WINAPI WinMain( HINSTANCE hInstance, // 当前运行的实例句柄 HINSTANCE hPrevInstance, // 当前实例的前一个实例句柄 LPSTR lpCmdLine, // 以空终止的字符串 int nCmdShow // 窗口显示 最大/小化 隐藏 ){ // 设计一个窗口类 WNDCLASS wndcls; // WNDCLASS 是一个结构体 包含窗口的各项特征 wndcls.cbClsExtra = 0; wndcls.cbWndExtra = 0; wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 背景画刷句柄 wndcls.hCursor = LoadCursor(NULL , IDC_CROSS); // 光标句柄 wndcls.hIcon = LoadIcon(NULL , IDI_ERROR); // 图标句柄 wndcls.hInstance = hInstance; // 实例句柄 wndcls.lpfnWndProc = WinSunProc; // 指针函数 指向窗口过程函数 wndcls.lpszClassName = "xiaobei2017"; // 窗口类的名字 wndcls.lpszMenuName = NULL; // 菜单资源的名字 wndcls.style = CS_HREDRAW | CS_VREDRAW; // style指的窗口的样式 // 注册窗口类 RegisterClass(&wndcls); // 创建窗口 /* CreateWindow函数用来创建窗口 * 第一个参数是窗口类的名字 跟上面要对应 * 第二个参数是窗口的名字 * 第三个参数是窗口的类型 * 第四五个参数是窗口左上角的坐标 * 第六七个参数是窗口的长和宽 * 第八个是副窗口句柄 只有一个窗口就设置成NULL * 第九个是菜单句柄 没有菜单就设置成NULL * 第十个是实例句柄 hInstance * 第十一个参数暂时用不上 后面再介绍 */ HWND hwnd; hwnd = CreateWindow("xiaobei2017","翼佳奕", WS_OVERLAPPEDWINDOW,200,200,600,400,NULL,NULL,hInstance,NULL); // 显示及刷新窗口 /* ShowWindow函数是用来显示窗口 * 第一个参数是窗口句柄 * 第二个参数是窗口的显示状态SW_SHOWNORMAL是激活窗口并显示 */ ShowWindow(hwnd , SW_SHOWNORMAL); UpdateWindow (hwnd); // 更新窗口 参数是窗口句柄 (可有可无) // 定义消息结构体 ,开始消息循环 // 消息循环就是不断地从消息队列中取出信息并响应 /* GetMessage函数就是从消息队列中取出信息 * 第一个参数是指向消息结构体 * 第二个参数指定接收哪个窗口的消息 通常默认为NULL * 第三四个参数是获取消息的最小值和最大值 通常为0 接收所有消息 */ // TranslateMessage 函数是将虚拟键消息转换为字符消息 // DispatchMessage 是将消息回传给操作系统 MSG msg; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;}/********************************************** * 窗口过程函数 * WinSunProc 是函数名 可以随便起 但要有意义 **********************************************/ LRESULT CALLBACK WinSunProc( HWND hwnd, // 窗口句柄 UINT uMsg, // 消息代码 WPARAM wParam, // 消息代码的两个附加参数 LPARAM lparam ) { switch(uMsg) { case WM_CHAR: // WM_CHAR char szChar[20]; sprintf(szChar,"输入的字符是%d",wParam); MessageBox(hwnd,szChar,"char",0); break; /* MessageBox 函数是用来弹出消息框 * 第一个参数是当前窗口的窗口句柄 * 第二个参数是消息显示的文本 * 第三个参数是消息框的标题 * 第四个参数是消息框的类型 0代表MB_OK 就是按键 */ case WM_LBUTTONDOWN://鼠标左键按下的标志 MessageBox(hwnd,"mouse clicked","message",0); HDC hdc; hdc = GetDC(hwnd); TextOut(hdc,0,30,"科技大学",strlen("科技大学")); ReleaseDC(hwnd,hdc); break; case WM_PAINT: //窗口重绘 HDC hDc; PAINTSTRUCT ps; hDc = BeginPaint(hwnd,&ps); TextOut(hDc,0,0,"机械工程学院",strlen("机械工程学院")); EndPaint(hwnd,&ps); break; case WM_CLOSE: // 窗口关闭 if (IDYES == MessageBox(hwnd,"是否真的结束?","message",MB_YESNO)) { DestroyWindow(hwnd); // 销毁一个窗口 } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lparam); } return 0; }
0 0
- 通过WinMain函数创建窗口
- QT创建窗口程序、消息循环和WinMain函数
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
- 详解QT源码之QT创建窗口程序、消息循环和WinMain函数
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
- QT源码之QT创建窗口程序、消息循环和WinMain函数
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
- WinMain函数 注册窗口类 消息循环
- WinMain() 函数
- WinMain函数
- WinMain()函数
- WinMain函数
- WinMain函数
- WinMain()函数
- WinMain函数
- WinMain函数
- WinMain函数
- 二叉树的完整操作
- swift . 视图的添加及层次变动和基本动画
- 设计模式->结构型模式->桥接模式
- 消息重试
- ubuntu安装mysql
- 通过WinMain函数创建窗口
- python_随机调用一个浏览器打开网页
- 消费幂等
- 用Java实现大文件的分割与合并
- 安卓UI基础知识---几种常见单位
- 面试时最常问到的Handler消息机制源码详解
- NOJ_1014
- autorelease的使用场景
- elasticsearch学习之IK分词器