Win32创建一个简单的窗口
2017-11-12 21:42
639 查看
Win32创建一个简单的窗口
环境:Win10专业版 VS2017 桌面应用程序
在该环境下创建一个Hello World!的桌面应用程序:
直接贴上代码:里面包含有代码的具体解释,无论多么大,多么复杂的窗口软件,都是在这个基础上面增加的。
再来一个运行成功的截图:
最后附上完整代码的项目:
链接:http://pan.baidu.com/s/1hs0908G 密码:74ne
环境:Win10专业版 VS2017 桌面应用程序
在该环境下创建一个Hello World!的桌面应用程序:
直接贴上代码:里面包含有代码的具体解释,无论多么大,多么复杂的窗口软件,都是在这个基础上面增加的。
#include "stdafx.h" #pragma comment(lib, "winmm") //使用了该函数PlaySound,在winmm.lib LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); //声明窗口过程函数 int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nCmdShow) { //声明一个窗口类 WNDCLASS wc = { 0 }; wc.hbrBackground = (HBRUSH)GetStockObject(COLOR_WINDOW + 1); //该窗口类的背景 wc.hCursor = LoadCursor(NULL, IDC_ARROW); //光标 wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); //图标 wc.hInstance = hInstance; //实例化的句柄 wc.lpfnWndProc = WndProc; //窗口过程函数 wc.lpszClassName = "HelloWin"; //窗口类名 wc.lpszMenuName = NULL; //菜单栏的名称 wc.style = CS_HREDRAW | CS_VREDRAW; //窗口类的风格设置 //注册窗口类 if (!RegisterClass(&wc)) //注册窗口类 { MessageBox(NULL, //注册失败就弹出消息警告框 TEXT("注册窗口类失败"), TEXT("HelloWin"), MB_ICONEXCLAMATION ); return 0; } //创建窗口类 HWND hWnd = CreateWindow("HelloWin", //该窗口使用的窗口类的名称 "FirstWindows", //窗口标题名 WS_OVERLAPPEDWINDOW, //窗口风格 CW_USEDEFAULT, //窗口左上角的横坐标(这里使用默认值) CW_USEDEFAULT, //窗口左上角的纵坐标(这里使用默认值) CW_USEDEFAULT, //窗口的宽度 CW_USEDEFAULT, //窗口的高度 NULL, //父窗口的句柄 NULL, //菜单的句柄 hInstance, //窗口实例化的句柄 NULL //将WM_CREATE消息中通过的lParam传递给窗口的回调函数 ); //显示窗口 ShowWindow(hWnd, SW_SHOW); //刷新窗口 UpdateWindow(hWnd); //消息循环处理 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) //获取消息 { TranslateMessage(&msg); //将虚拟键消息转换为字符消息。字符消息被发送到调用线程的消息队列,在下一次线程调用GetMessage或PeekMessage函数时读取 DispatchMessage(&msg); //将消息分派给窗口过程。它通常用于分派由GetMessage函数检索的消息。 } return msg.wParam; } LRESULT WINAPI WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) //窗口过程函数的定义 { HDC hdc; PAINTSTRUCT ps; RECT rect; switch (uMsg) { case WM_CREATE: //创建时刻的消息 PlaySound(TEXT("Hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC); break; case WM_PAINT: //描绘时刻的消息 hdc = BeginPaint(hWnd, &ps); GetClientRect(hWnd, &rect); DrawText(hdc, TEXT("Hellow 愿意百年挽朝夕, 2017.11.12"), -1, &rect, DT_SINGLELINE | DT_VCENTER | DT_CENTER); EndPaint(hWnd, &ps); break; case WM_DESTROY: //销毁窗口时刻的消息 PostQuitMessage(0); //销毁的动作 break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); //当不是以上这些消息的时候,就会默认调用该函数处理 } return 0; }
再来一个运行成功的截图:
最后附上完整代码的项目:
链接:http://pan.baidu.com/s/1hs0908G 密码:74ne
相关文章推荐
- MFC(一):win32创建一个最简单的窗口
- 【Direct3D9】用D3D9实现一个简单的Galgame #1 创建Win32窗口
- win32 api 创建窗口的一个简单例子
- 创建一个简单的win32 应用窗口程序
- 创建CEGUI窗口入门——讲述如何创建一个简单的CEGUI窗口
- 吕鑫MFC就业培训宝典学习笔记—创建一个简单的win32应用程序(2-1)
- Win32汇编教程3 - 创建简单的窗口
- win32程序中创建一个DOS窗口
- 学习win32 API开发3-一个窗口创建的经典步骤
- win32sdk学习-简单的创建一个自己的工具栏
- Nehe OpenGL教程第一课-创建一个OpenGL窗口(Win32)
- Win32汇编教程四 编写一个简单的窗口
- 一个简单的Win32 SDK窗口程序
- Win32汇编:创建简单的窗口
- WIN32入门---创建一个窗口
- win32sdk学习-创建一个对话框窗口
- 不使用API,创建一个最简单的窗口
- WindowsApi学习笔记-创建一个简单的窗口
- 一个win32窗口创建示例
- [置顶] java最简单的知识之创建一个简单的windows窗口,利用Frame类