
在MFC中,可以通过以下步骤建立消息响应函数与控件对应的关系:
打开MFC应用程序的资源视图,双击对应的对话框资源文件(.dlg文件)打开对话框编辑器。
在对话框编辑器中,选择要添加消息响应函数的控件。例如,选择一个按钮控件,然后右键单击该控件,在d出的上下文菜单中选择“添加事件处理程序”。
在d出的“添加事件处理程序”对话框中,选择要添加的消息类型。例如,选择“BN_CLICKED”表示添加“单击”消息的响应函数。
在“添加事件处理程序”对话框中,选择要添加响应函数的类。这里需要选择的是包含响应函数的类,通常是该对话框所在的类。
在“添加事件处理程序”对话框中,输入要添加的响应函数的名称。这个名称需要以“On”开头,后面跟上消息类型和控件的ID,例如“OnBnClickedButton1”。
点击“添加”按钮,将响应函数添加到代码中。然后,在响应函数中编写具体的处理逻辑。
完成上述步骤后,消息响应函数就与控件对应起来了。当用户 *** 作控件时,MFC会自动调用相应的消息响应函数来处理该消息。
MFC基于对话框——右键d出菜单,并响应函数。1、新建一个菜单资源,比如把菜单的ID号为IDR_MENU1。
2、在ClassWizard中
void CArcSoft_EffectDlg::OnRButtonDown(UINT nFlags, CPoint point)
{// TODO: Add your message handler code here and/or call default
CMenu menu//定义下面要用到的cmenu对象
menu.LoadMenu(IDR_MENU1)//装载自定义的右键菜单;
CMenu *pContextMenu=menu.GetSubMenu(0)//获取第一个d出菜单,所以第一个菜单必须有子菜单;
CPoint point1//定义一个用于确定光标位置的位置;
GetCursorPos(&point1)//获取当前光标的位置,以便使得菜单可以跟随光标
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,AfxGetMainWnd())//在指定位置显示d出菜单;
CDialog::OnRButtonDown(nFlags, point1)};
当你运行程序获得焦点时,才会捕捉相应的WM_KEYDOWN WM_MOUSEMOVE等消息,如果你想做一个后台程序,比如说改建精灵一类的,就需要用到钩子了。调用HHOOK SetWindowsHookEx(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
)
这个方法,第一个参数说明钩子的类型,有比如WH_MOUSE;第二个参数:标识钩子回调函数地址;第三个参数:钩子所在模块的句柄; 第四个参数:被钩线程的ID。具体用法可以去找MSDN或者网上有很多说明的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)