MFC小程序
2015-06-20 19:53
507 查看
// FirstView.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" #define MAX_LOADSTRING 100 // 全局变量: HINSTANCE hInst; // 当前句柄 TCHAR szTitle[MAX_LOADSTRING]; // 标题 TCHAR szWindowClass[MAX_LOADSTRING]; // 类名 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //消息处理回调函数 LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); //消息处理回调函数 //该函数被系统调用,作为一个32位应用程序的入口点。 //HINSTANCE hInstance 应用程序当前事例的句柄 //HINSTANCE hPrevInstance 应用程序的前事例的句柄。对于一个32的位程序,该参数总为NULL。 //LPSTR lpCmdLine 指向应用程序命令行的空字符串的指针 //int nCmdShow 指明窗口如何显示 int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { MSG msg; //消息 HACCEL hAccelTable;//加速键表 // 初始化全局字符串、装载字符串表资源 LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_FIRSTVIEW, szWindowClass, MAX_LOADSTRING); //创建窗口 WNDCLASSEX wcex;//指向一个WNDCLASSEX结构的指针 wcex.cbSize = sizeof(WNDCLASSEX); //定义INPUT结构的大小。若cbSize不是INPUT结构的大小,则函数调用失败。 wcex.style = CS_HREDRAW | CS_VREDRAW; //此风格中可使用DKGRAY_BRUSH、GRAY_BRUSH和LTGRAY_BRUSH对象。 wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance;//句柄赋值 wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_FIRSTVIEW);//图标句柄 wcex.hCursor = LoadCursor(NULL, IDC_ARROW); //光标句柄 wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); //背景句柄 wcex.lpszMenuName = (LPCSTR)IDC_FIRSTVIEW; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); //注册一个窗口类。 RegisterClassEx(&wcex); // 执行应用初始化:初始化失败返回false HWND hWnd;//窗口句柄 hInst = hInstance; //全局变量处理 //创建窗口 hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) { return FALSE; } //显示窗口 ShowWindow(hWnd, nCmdShow); //重绘窗口 UpdateWindow(hWnd); //LoadAccelerators 调入加速键表 //hInstance 模块的一个事例的句柄 //(LPCTSTR)IDC_FIRSTVIEW 指向一个以空结尾的字符串的指针, //该字符串包含了即将调入的加速键表的名字 hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_FIRSTVIEW); // 主要消息循环: while (GetMessage(&msg, NULL, 0, 0)) { //TranslateAccelerator 翻译加速键表。该函数处理菜单 //命令中的加速键。如果失败,执行TranslateMessage,DispatchMessage方法 //msg.hwnd 窗口句柄,该窗口的消息将被翻译。 //hAccelTable 加速键表句柄。 //&msg MSG结构指针 if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } //函数:WndProc(HWND, unsigned, WORD, LONG) //目的:过程信息的主窗口 //WM_COMMAND -应用程序的菜单 //WM_PAINT -主窗口 //WM_DESTROY -显示退出信息并返回 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; //指向目标设备环境的句柄 TCHAR szHello[MAX_LOADSTRING]; //100个单位长度字符串 LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); //装载字符串表资源 switch (message) { //应用程序的菜单 case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // 分析菜单: switch (wmId) { case IDM_ABOUT: //根据对话框模板资源创建一个模态的对话框 DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); break; case IDM_EXIT: //关闭窗口 DestroyWindow(hWnd); break; default: //调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理 return DefWindowProc(hWnd, message, wParam, lParam); } break; //主窗口 case WM_PAINT: hdc = BeginPaint(hWnd, &ps); RECT rt;//指向RECT结构的指针 //该函数获取窗口客户区的坐标 GetClientRect(hWnd, &rt); //该函数在指定的矩形里写入格式化文本 DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); //绘制结束 EndPaint(hWnd, &ps); break; //显示退出信息并返回 case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } //信息处理器. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; }
相关文章推荐
- “人贩子一律死刑”是场失败的微信营销
- 微信分享内容给朋友、朋友圈、QQ、QQ空间等
- 的微信公众号开发 图灵机器人接口允许调用自己的微通道成为一个智能机器人
- 判断是否微信 IPhone 打开
- 微信支付开发
- 微信分享无响应的解决
- 网爆朋友圈遭“人贩”刷屏是营销
- 关于含有微信分享的应用发布包的签名问题
- 低头族,Look Up!
- Java文件查找小程序
- (PHP)微信公众平台模拟登陆和发送消息详解
- 【导航】微信开发者相关网址导航
- 【java】微信开发后台官方后台配置篇
- 微信oauth2验证
- 微信投票
- 微信公众平台名字修改方法
- 微信JS-SDK之图像接口开发详解
- jdbc方式应用入门的小程序
- 共享微信JSSDK的access_token.json
- 类似微信表情图文混排(本地自定义表情)