🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
LRESULT SendMessage 返回值是int BOOL PostMessage 返回值是bool **WIN32自定义消息** ```c++ #include "stdafx.h" #include "resource.h" #define WM_TEST WM_USER+10 INT_PTR CALLBACK theProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_TEST: { wchar_t s[100]; _stprintf(s,_T("wParam=%d,lPrarm=%d"),wParam,lParam); MessageBoxW(hWnd,s,_T("提示"),MB_OK); return TRUE; } case WM_DESTROY: PostQuitMessage(IDCANCEL); return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK3: SendMessage(hWnd,WM_TEST,123,123); return TRUE; } } return FALSE; }; int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdLShow) { DialogBox(hInstance,(LPCWSTR )IDD_DIALOG1,NULL,theProc); return 0; }; ``` ***** **MFC自定义消息** 1。创建一个函数 OnTestMessage(WPARAM w,LPARAM l); ```c++ LRESULT CLXDlg::OnTestMsg(WPARAM w, LPARAM l) { AfxMessageBox(_T("测试非系统消息")); return w+l; } ``` 2. 定义自定义消息的宏 加入消息映射中 ```c++ enum{WM_TEST = WM_USER + 132};(#define 也可以定义常量) BEGIN_MESSAGE_MAP(CLXDlg, CDialogEx) ON_MESSAGE(WM_TEST,OnTestMsg) END_MESSAGE_MAP() ``` 3. 创建一个按钮点击事件发送postmessage 测试这个非系统消息 ```c++ void CLXDlg::OnBnClickedCancel2() { // TODO: 在此添加控件通知处理程序代码 int nRet = PostMessage(WM_TEST,3,5); } ```