图形界面设计_图形界面
2023-04-27 10:55:47 来源:互联网
(资料图片)
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;}。
本文到此分享完毕,希望对大家有所帮助。
标签:
相关热词搜索:
[责任编辑:]
相关阅读
- (2023-04-27)山海杨阳:黄金持续扫盘震荡,日内2002压制下空!
- (2023-04-27)每日观察!传媒板块再度拉升
- (2023-04-27)天天关注:查公司名字打多少分_查名字打多少分
- (2023-04-27)全球滚动:一季度保险业原保费收入同比增长9.24%
- (2023-04-27)美政府前雇员:政府已成移民儿童贩卖“中间商”
- (2023-04-27)花雕熟醉蟹可以保存多久_花雕熟醉蟹的制作方法
- (2023-04-27)兴瑞科技营收净利创历史新高,聚焦核心业务,持续培育增长新动能!智能终端新能源汽车行业快速发展,驱动公司业绩持续增长