Windows API 编程之创建一个windows窗口
来源:互联网 发布:电视的mac什么意思 编辑:程序博客网 时间:2024/06/05 03:17
直接上代码。
/************************************************************************************** * 问题:使用windows API函数创建一个windows窗口 * 作者:李文顺 * 步骤: * 1、注册窗口类 (RegisterClassEx) * 2、创建窗口 (CreateWindowsEx) * 3、在桌面显示窗口 (ShowWindows) * 4、更新窗口客户区 (UpdataWindows) * 5、进入无限循环的消息获取和处理的循环。 * GetMessage ,获取消息 * TranslateMessage ,转换键盘消息 * DispatchMessage ,将消息发送到相应的窗口函数 **************************************************************************************/ * 修改:修改一些注释,更准确。 * 时间:2016、12、29 **************************************************************************************/#include <windows.h>//函数申明LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);//全局变量char titleName[]="你随意"; //窗口标题//图形界面程序的入口int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ //定义窗口类(扩展) WNDCLASSEX wcex; //设置窗口的属性 wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; //从这个窗口派生出的窗口具有的风格 wcex.lpfnWndProc = (WNDPROC)WndProc; //窗口消息处理函数指针 wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = NULL; //窗口最小化图标 wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = titleName; //该窗口类的名称 wcex.hIconSm = NULL; //左上角图标 //注册窗口 ::RegisterClassEx(&wcex); HWND hWnd; //创建窗口 hWnd = ::CreateWindow(titleName, titleName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd)return FALSE; //创建窗口失败,返回 //显示窗口 ::ShowWindow(hWnd, nCmdShow); //刷新窗口客户区 ::UpdateWindow(hWnd); //循环获取\处理消息 MSG msg; while(::GetMessage(&msg,0,0,0)) { ::TranslateMessage(&msg); //转换键盘消息 ::DispatchMessage(&msg); //将消息发送到相应的窗口函数 } return (int)msg.wParam; }//窗口消息处理函数LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hDC; RECT rect; PAINTSTRUCT ps; switch(message) { case WM_PAINT: hDC = ::BeginPaint(hWnd,&ps); //使无效的客户区变得有效,并取得环境设备 //自定义 { ::GetClientRect(hWnd,&rect); //获取窗口客户区的大小 ::DrawText(hDC,TEXT("HELLO WORLD"),-1,&rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); //在指定的矩形里写入格式化的正文 } ::EndPaint(hWnd,&ps); //释放环境变量句柄,和::BeginPaint 配套使用 break; case WM_DESTROY: ::PostQuitMessage(0); //该函数向消息队列中插入一条 WM_QUIT 消息,由 GetMessage 函数捕获返回 0 而退出程序 break; } return ::DefWindowProc(hWnd,message,wParam,lParam);}
0 0
- Windows API 编程之创建一个windows窗口
- 《Windows API》创建窗口
- Windows编程-创建窗口
- 创建一个windows窗口
- windows创建一个窗口
- C++Windows编程之创建窗口
- C++Windows编程之创建窗口
- Windows图形编程(版本3):创建一个全屏窗口
- Windows编程——实现创建一个窗口过程
- windows API编程之三----简单的窗口程序
- 《Windows API》使用对话框资源创建窗口
- Python使用Windows API创建窗口
- 利用windows API 进行窗口编程
- windows API 生成一个窗口简单例子
- windows编程之API学习
- Windows SDK编程--创建MDI窗口
- windows编程 全屏窗口的创建总结
- Windows编程学习笔记 lesson2 窗口创建
- 瑞芯微 Rockchip RK3128方案设计 RK3128方案定制,RK3128盒子,RK3128板卡
- 如何让EditText具有自动大小写转换的功能。
- 操作系统
- libsvm在matlab中的使用
- 算法18_五大常用算法之二:动态规划算法
- Windows API 编程之创建一个windows窗口
- 《用户故事与敏捷方法》
- spark streaming programming guide 综述(一)
- 浏览器探究 - HTML5规范之Application Cache(2)
- linux之普通用户具有什么样的权限才能执行shell脚本???
- 环信修改昵称和头像
- JAVA渣渣感悟——三目运算符(三元运算符)的注意事项
- 315.leetcode Count of Smaller Numbers After Self(hard)[利用二分查找 空间换取时间的思想]
- 面试题43:n个骰子的点数