Windows编程实验第一课
2017-03-03 15:51
204 查看
#include <windows.h> const char g_szClassName[] = "myWindowClass"; //窗口类的名称 /* 窗口过程: ** 每个消息来时,都被调用一次 ** 根据消息类型,选择执行的语句 */ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_LBUTTONDOWN: { char szFileName[MAX_PATH]; HINSTANCE hInstance = GetModuleHandle(NULL); GetModuleFileName(hInstance, szFileName, MAX_PATH); MessageBox(hwnd, szFileName, "This program is :", MB_OK | MB_ICONINFORMATION); } break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wc; HWND hwnd; MSG Msg; //设置窗口的属性 wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = NULL; wc.lpszClassName = g_szClassName; wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); //注册窗口,并检查窗口是否注册成功 if (!RegisterClassEx(&wc)) { MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } //创建窗口,并检查窗口是否创建成功 hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, g_szClassName, "The title of my window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 240, 120, NULL, NULL, hInstance, NULL); if (hwnd == NULL) { MessageBox(NULL, "Window Creation Failed!", "Error", MB_ICONEXCLAMATION | MB_OK); return 0; } //显示窗口 ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); /* 消息循环: ** GetMessage()从消息队列中取出一个消息 ** DispatchMessage()将消息传送到消息应该被传送到的窗口 */ while (GetMessage(&Msg, NULL, 0, 0) > 0) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; }
相关文章推荐
- 【VS2013】windows多线程编程_初次实验
- C#实验8Windows应用编程
- 实验4 Windows界面编程
- windows编程第一课
- Windows编程实验4
- windows编程实验二 1
- VC++编程之第一课笔记――Windows程序内部运行原理
- 第一次Windows编程实验代码及感悟
- [补] windows C socket编程——大物实验预约
- Windows编程最后一次实验
- LinuxSir.Org > 编程开发讨论区 —— LinuxSir.Org > 嵌入式Linux讨论区──实验田版 > 编译microwindows出错..
- 我的第一次Windows编程实验
- 第一次Windows编程实验代码及感悟
- Windows网络编程之Winsock 编程接口实验
- 对面向对象的Windows编程实战的一些补充说明
- windows网络编程_阶段总结(1)
- 如何使对话框中接收到WM_CHAR消息(Windows编程)
- 面向对象的Windows编程实战(上)(使用C++和Win32 API)
- 通过COM技术实现Windows外壳编程
- Windows环境变量编程设定