需要两步:
1、创建消息处理函数
2、处理消息
一、创建c++空项目(注意:项目目录不能出现中文)
二、编写入口程序代码
#include <Windows.h>
#include "resource.h"
//主入口
int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
INT_PTR CALLBACK MainDlgProc(HWND bDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
DialogBox(hinstance,//入口HINSTANCE
MAKEINTRESOURCE(IDD_MAIN),//对话框窗口模板句柄
NULL,//父窗口
MainDlgProc);//窗口过程
}
//窗口过程函数
INT_PTR CALLBACK MainDlgProc(HWND bDlg, //句柄
UINT uMsg, //消息
WPARAM wParam, //参数
LPARAM lParam)//参数
{
BOOL bRet=TRUE;
//处理窗口消息
switch(uMsg)
{//对窗口转发过来的消息进行处理
case WM_LBUTTONDOWN:
MessageBox(bDlg,"鼠标单击了","Demo",MB_OK);
break;
case WM_COMMAND://命令消息--点击按钮时走这里
switch(LOWORD(wParam)){//wParam的低地址是按钮的ID
case IDC_BUTTON1:
MessageBox(bDlg,"点击了按钮1","Demo",MB_OK);
break;
case IDC_BUTTON2:
MessageBox(bDlg,"点击了按钮2","Demo",MB_OK);
break;
case IDOK:
MessageBox(bDlg,"点击了确定按钮","Demo",MB_OK);
break;
case IDCLOSE:
MessageBox(bDlg,"点击了取消按钮","Demo",MB_OK);
break;
default:
bRet=FALSE;
break;
}
break;
case WM_CLOSE://关闭窗口时
EndDialog(bDlg,0);
break;
default://其它消息交由windows处理,DefWindowProc是系统默认的窗口过程
bRet=FALSE;
break;
}
return bRet;
};
|