首页>资讯 > >正文

世界观点:图形界面设计_图形界面


【资料图】

1、这是最简单的界面程序://c++.cpp:定义应用程序的入口点。

2、//#include"stdafx.h"#include"c++.h"#defineMAX_LOADSTRING100//全局变量:HINSTANCEhInst;//当前实例TCHARszTitle[MAX_LOADSTRING];//标题栏文本TCHARszWindowClass[MAX_LOADSTRING];//主窗口类名//此代码模块中包含的函数的前向声明:ATOMMyRegisterClass(HINSTANCEhInstance);BOOLInitInstance(HINSTANCE,int);LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);INT_PTRCALLBACKAbout(HWND,UINT,WPARAM,LPARAM);intAPIENTRY_tWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine);//TODO:在此放置代码。

3、MSGmsg;HACCELhAccelTable;//初始化全局字符串LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);LoadString(hInstance,IDC_C,szWindowClass,MAX_LOADSTRING);MyRegisterClass(hInstance);//执行应用程序初始化:if(!InitInstance(hInstance,nCmdShow)){returnFALSE;}hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_C));//主消息循环:while(GetMessage(&msg,NULL,0,0)){if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg)){TranslateMessage(&msg);DispatchMessage(&msg);}}return(int)msg.wParam;}////函数:MyRegisterClass()////目的:注册窗口类。

4、////注释:////仅当希望//此代码与添加到Windows95中的“RegisterClassEx”//函数之前的Win32系统兼容时,才需要此函数及其用法。

5、调用此函数十分重要,//这样应用程序就可以获得关联的//“格式正确的”小图标。

6、//ATOMMyRegisterClass(HINSTANCEhInstance){WNDCLASSEXwcex;wcex.cbSize=sizeof(WNDCLASSEX);***.style=CS_HREDRAW|CS_VREDRAW;wcex.lpfnWndProc=WndProc;wcex.cbClsExtra=0;wcex.cbWndExtra=0;wcex.hInstance=hInstance;wcex.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_C));wcex.hCursor=LoadCursor(NULL,IDC_ARROW);wcex.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);wcex.lpszMenuName=MAKEINTRESOURCE(IDC_C);wcex.lpszClassName=szWindowClass;wcex.hIconSm=LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));returnRegisterClassEx(&wcex);}////函数:InitInstance(HINSTANCE,int)////目的:保存实例句柄并创建主窗口////注释:////在此函数中,我们在全局变量中保存实例句柄并//创建和显示主程序窗口。

7、//BOOLInitInstance(HINSTANCEhInstance,intnCmdShow){HWNDhWnd;hInst=hInstance;//将实例句柄存储在全局变量中hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if(!hWnd){returnFALSE;}ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);returnTRUE;}////函数:WndProc(HWND,UINT,WPARAM,LPARAM)////目的:处理主窗口的消息。

8、////WM_COMMAND-处理应用程序菜单//WM_PAINT-绘制主窗口//WM_DESTROY-发送退出消息并返回////LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){intwmId,wmEvent;PAINTSTRUCTps;HDChdc;switch(message){caseWM_COMMAND:wmId=LOWORD(wParam);wmEvent=HIWORD(wParam);//分析菜单选择:switch(wmId){caseIDM_ABOUT:DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);break;caseIDM_EXIT:DestroyWindow(hWnd);break;default:returnDefWindowProc(hWnd,message,wParam,lParam);}break;caseWM_PAINT:hdc=BeginPaint(hWnd,&ps);//TODO:在此添加任意绘图代码...EndPaint(hWnd,&ps);break;caseWM_DESTROY:PostQuitMessage(0);break;default:returnDefWindowProc(hWnd,message,wParam,lParam);}return0;}//“关于”框的消息处理程序。

9、INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam){UNREFERENCED_PARAMETER(lParam);switch(message){caseWM_INITDIALOG:return(INT_PTR)TRUE;caseWM_COMMAND:if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL){EndDialog(hDlg,LOWORD(wParam));return(INT_PTR)TRUE;}break;}return(INT_PTR)FALSE;}。

本文就为大家分享到这里,希望小伙伴们会喜欢。

标签: 应用程序 全局变量 窗口类名 就为大家

相关阅读