⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgtest.cpp

📁 c++从入门到精通
💻 CPP
字号:
#include <windows.h>
#include "DlgTest.h"

//窗口过程函数声明
long WINAPI WndProc(HWND hWnd,UINT iMessage,
					WPARAM wParam,LPARAM lParam);
//对话框处理函数声明
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);		

HWND hDlg;				//定义对话框句柄
HINSTANCE hInst;		//定义应用程序实例句柄

int WINAPI WinMain(HINSTANCE hInstance,
					   HINSTANCE hPrevInstance,
					   LPSTR lpCmdLine,
					   int nCmdShow)	
{
	MSG Message;					//定义消息变量
	HWND hWnd;					//定义窗口句柄
		WNDCLASS WndClass;			//定义窗口类
		WndClass.cbClsExtra=0;			//无窗口类扩展
		WndClass.cbWndExtra=0;			//无窗口实例扩展
		//背景为白色
		WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
		WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);//光标为为箭头
		WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//采用缺省图标
		WndClass.hInstance=hInstance;		   //当前实例
		WndClass.lpfnWndProc=WndProc;	   //消息处理函数
		WndClass.lpszClassName="DlgInstance";//窗口类名称
		WndClass.lpszMenuName=NULL;//无菜单
		WndClass.style=0;//缺省窗口风格

		HMENU hmenu;
		hmenu=LoadMenu(hInstance,"Menu");
	
		if(!RegisterClass(&WndClass))//注册窗口.
		{
			MessageBeep(0);			//注册失败发出警告声.
			return FALSE;
		}

		hWnd=CreateWindow("DlgInstance",		//窗口类名称
						"对话款设计程序",		//标题栏名称
	 					WS_OVERLAPPEDWINDOW,	//窗口样式.											CW_USEDEFAULT,		//窗口左上角坐标
						CW_USEDEFAULT,
						0,
						CW_USEDEFAULT,		//采用自定义的高度和宽度
						0,
						NULL,					//无父窗口
						hmenu,					//自定义的菜单
						hInstance,				//当前应用实例句柄
						NULL);					//指向传递给窗口的参数的指针

		ShowWindow(hWnd,nCmdShow);			//显示窗口
		UpdateWindow(hWnd);						//刷新用户区
		hInst=hInstance;						    //将应用程序句柄传递给全局变量

		while(GetMessage(&Message,0,0,0))
		{
			//若是对话框消息,发往对话框处理函数
			if(!IsDialogMessage(hDlg,&Message))		
			{
				TranslateMessage(&Message);//消息循环
				DispatchMessage(&Message);
			}
		}
		return Message.wParam;
}

long WINAPI WndProc(HWND hWnd,
						UINT iMessage,
					WPARAM wParam,
						LPARAM lParam)
{
		switch(iMessage)
		{
		case WM_COMMAND:
			switch(LOWORD(wParam))
			{
			case IDM_NEW://点击New菜单
				//显示模态对话框
				DialogBox(hInst,"New",hWnd,(DLGPROC)DlgProc);
				break;
		
			case IDM_OPEN://点击Open菜单
				//显示模态对话框
				DialogBox(hInst,"Open",hWnd,(DLGPROC)DlgProc);	
				break;
			case IDM_SAVE://点击Save菜单
				if(hDlg)
					DestroyWindow(hDlg);
				//显示非模态对话框
				hDlg=CreateDialog(hInst,"Save",hWnd,(DLGPROC)DlgProc);
				break;
			case IDM_SAVEAS://点击SaveAsn菜单
				if(hDlg)
					DestroyWindow(hDlg);
				//显示非模态对话框
				hDlg=CreateDialog(hInst,"SaveAs",hWnd,(DLGPROC)DlgProc);
				break;
			case IDM_CLOSE:	//点击Close菜单
				if(hDlg)
					DestroyWindow(hDlg);//删除非模态对话框
				break;
			case IDM_EXIT://点击Exit菜单
				SendMessage(hWnd,WM_DESTROY,0,0);//发送退出消息
				break;
			}
			break;
		case WM_DESTROY://退出
			PostQuitMessage(0);
			break;
		default:
			return(DefWindowProc(hWnd,iMessage,wParam,lParam));
		}
		return 0;
}
//对话框窗口处理函数
BOOL CALLBACK DlgProc(HWND hdlg,
						  UINT message,
						  WPARAM wParam,
						  LPARAM lParam)
{
    	switch(message)
		{
    	case WM_INITDIALOG://初始化对话框 
			return 1;
	 
		case WM_COMMAND://处理对话框消息
			switch (LOWORD(wParam))
			{
			case IDOK:
				EndDialog( hdlg, 0) ;//关闭对话框  
				return 1;
			}
			break ;
   	 	case WM_CLOSE:
      	   EndDialog( hdlg, 0) ;
     	   return 1;
		}
   		return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -