在MFC中,on_message函数通常具有以下格式: afx_msg LRESULT on_message(WPARAM wParam, LPARAM lParam); 其中,afx_msg是MFC中用于声明消息处理函数的宏,LRESULT是消息处理函数的返回值类型,on_message是函数名,而WPARAM和LPARAM则是消息参数,它们用于传递消息的相关信息。
1.定义消息: 在stdafx.h 中加入如下代码: #ifndef WM_NOISE #define WM_NOISE WM_USER+2 #endif 2、 在**Dlg.h 文件中加入: afx_msg LRESULT 消息响应函数; 3、 在**Dlg.cpp 文件中加入消息的注册: ON_MESSAGE(WM_NOISE, &**Dlg:: 消息响应函数) 4、 实现消息响应函数 在**Dlg.cpp中加入消息响...
ON_MESSAGE是处理所有的Windows的消息的,因为所有的消息都以相同的格式传送,也就是ID, WPARAM, LPARAM. ON_COMMAND是专门处理WM_COMMAND消息的,这样我们就不用自己解开WM_COMMAND中wParam和lParam中传送的控件ID,事件种类…(所有的都在MFC内部解决了:),当然方便了。 ON_NOTIFY更是不用说了,看看他的处理函数,是不...
ON_MESSAGE用来响应自定义消息,能够处理所有的消息响应,在程序中需要自己设定相应的消息响应函数。 ON_NOTIFY是控件向其父窗口发送消息处理的宏,扩展了ON_COMMAND的功能,使用了相应的NMHDR结构。
比如,要传递字符串,则在子窗体中写:CString str= "自定义字符串";::PostMessage((HWND)(GetMainWnd()->GetSafeHwnd()),WM_MYMSG,NULL,(LPARAM)&str);在主窗体中响应:BEGIN_MESSAGE_MAP()ON_MESSAGE(WM_MYMSG, onMyMsg)END_MESSAGE_MAP()然后再onMyMsg响应就可以了。
on_command(id号,函数)是将菜单,或工具栏命令映射到指定的函数上 ON_WM_LBUTTONDOWN 是映射WM_LBUTTONDOWN (鼠标左键按下) 到成员函数 OnLButtonDown(UINT nFlags,CPoint point );
END_MESSAGE_MAP() 在你的对话框类中添加OnInitMenuPopup成员函数且复制下列代码到该函数(注意:代码基本上是从CFrameWnd::OnInitMenuPopup(在WinFrm.cpp中)复制过来的): void CTestDlg::OnInitMenuPopup(CMenu *pPopupMenu, UINT nIndex,BOOL bSysMenu) {
wParam, lParam是一个32位的整型, 具体代表什么要根据前面传递的message来看, 可以代表一个指向字符串的指针,也可以是一个结构体指针, 也可以高字节代表某个东西, 低字节又代表某个东西, 我的理解是像VOID* ,可以指向任何数据. 当它具体到某个消息时, 微软也就给它确定了具体的意义.下面是几个例子...
ON_CBN_SELENDOK是组合框控件的一个消息,用户在选择了一项以后,要么按了ENTER键,要么按了向下箭头键,从而隐藏了组合框的列表。此通知消息在CBN_CLOSEUP之前发送,表明用户的选择将不被认为是有效的。即使没有发送CBN_CLOSEUP通知消息,也会发送CBN_SELENDCANCEL或CBN_SEL-ENDOK消息(例如风格为CBS_...
afx_msg void OnLButtonDown();需要改为 afx_msg void OnLButtonDown(UINT nFlags, CPoint point);这样函数的声明和实现都一致方可通过编译。另外,cpp文件中的 this->都可以省略掉,1可以节省敲代码的时间,2是可以缩小代码行的长度,方便查看代码。查看ON_WM_LBUTTONDOWN的宏定义也可知道函数的正确...