Windows编程C++之第一个Windows程序
来源:互联网 发布:网络运营岗位的测试题 编辑:程序博客网 时间:2024/06/02 14:42
这篇文章主要是来介绍如何create一个最基本的windows程序。它创建的窗口是最基本的空白窗口,下面是对应的代码。
#ifndef UNICODE#define UNICODE#endif #include <windows.h>LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow){ // 注册window类 const wchar_t CLASS_NAME[] = L"Sample Window Class"; WNDCLASS wc = { }; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClass(&wc); // 创建窗口 HWND hwnd = CreateWindowEx( 0, // 窗口的风格 CLASS_NAME, // 窗口类 L"Learn to Program Windows", // 窗口名字 WS_OVERLAPPEDWINDOW, // 窗口风格 // 大小和位置 CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, // 父窗口 NULL, // 菜单 hInstance, // 句柄 NULL // 附加的应用程序数据 ); if (hwnd == NULL) { return 0; } ShowWindow(hwnd, nCmdShow); // 运行循环loop MSG msg = { }; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0;}LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1)); EndPaint(hwnd, &ps); } return 0; } return DefWindowProc(hwnd, uMsg, wParam, lParam);}
wWinMain 是程序的入口点。当程序启动时,它注册了一些关于应用程序窗口行为的信息。WindowProc是一个非常重要的函数,他定了窗口的具体行为,包括外表,与用户的交互等等。如果窗口创建成功,程序就会进入一个循环,直到用户关闭窗口,循环才会结束。其中,DispatchMessage把消息传递给WindowsProc。
0 0
- Windows编程C++之第一个Windows程序
- windows编程第一个程序
- windows编程--第一个WinMain程序
- Windows编程(1)-第一个程序
- 第一个Windows程序.
- 第一个Windows程序
- 第一个windows程序
- 第一个Windows程序
- 第一个WINDOWS程序
- 第一个windows程序
- 第一个Windows程序
- 第一个Windows程序
- 第一个Windows程序
- 第一个windows程序
- 第一个windows程序
- GUI 剖析 之第一个windows程序
- 第一个Win32窗口程序,纪念自己的Windows编程之旅
- 第一个 AIR windows程序
- (学习笔记)第六章 非刚性人脸跟踪——Face tracking(人脸跟踪)
- jquery图片放大效果,鼠标经过图片时局部放大,类似京东图片放大镜效果
- 有关actionbar的设置
- 加载数据库实体类
- IOS设置View的背景图片
- Windows编程C++之第一个Windows程序
- objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
- 很有用的一个关于highcharts使用的网页
- Github上600多个iOS开源项目
- Java 8 正式发布,新特性全搜罗
- MFC中强制转换总结
- php面向对象(二),继承,重写,parent,final关键字及访问控制
- JS实现网页版扫雷游戏
- Block、委托、回调函数原理剖析(在Object C语境)——这样讲还不懂,根本不可能!