永发信息网

MFC 左、右键点击按钮的实现

答案:1  悬赏:60  手机版
解决时间 2021-04-01 15:52
MFC 左、右键点击按钮的实现
最佳答案
按钮控件的左键单击消息是默认的,直接ClassWizard添加即可。
右键消息按钮控件默认是不支持的,需要自己处理。
两种办法:
派生一个自己的按钮类,并绑定指定控件。在自定义按钮类中处理WM_RBUTTONDOWN消息。
在对话框所在类CXXXDlg里面重载 PreTranslateMessage,并在其中这样处理消息:
BOOL CXXXDlg::PreTranslateMessage(MSG *pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_RBUTTONDOWN)       //可以改为任何消息
{
CRect r;
::GetWindowRect(GetDlgItem(IDC_00)->GetSafeHwnd(),&r);   //得到button所在的rect
POINT pt;
::GetCursorPos(&pt);             //得到鼠标动作的位置
if (PtInRect(&r,pt))        //判断鼠标动作是否在button范围之内     
{
AfxMessageBox(_T("右键单击"));
}
}
return CDialog::PreTranslateMessage(pMsg);
}追问请问按钮类如何派生?追答新建一个窗口类,将基类改为CButton即可。
另外,如果不熟悉,就直接用第二种的代码吧,派生要处理的东西比较多。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
说一个女的长得很清秀是漂亮还是没有到漂亮的
赤子乘龙,明珠和小白龙发生关系哪集哦,是怎
500元以下的椰综床垫与上千元的有什么区别
比萨斜塔为什么是斜的
穴字头有哪些字?
问道骑坐骑到底加速度不?
一前能正常wwW4444wkcOm收看的时候,根本不能
我最近想做金属的生意了,知道哪个交易平台比
25℃时,PH=13的1.0LBa(OH)2溶液中含有的OH-
能否通俗的解释一下“解释先行于错误”,不要
家用高压洗车机什么牌子好
长2米,直径8厘米的一根木材,,需要多少根才
谁有七脉轮的资料?
最近能看到一群一群蚂蚁在打架,数量极其的多,
香港妇健中心详细地址
推荐资讯
我比72小29这道题怎么做呢?
武松 李逵 宋江 分别对招安持什么态度
菁优网的i培训网站在哪下载手机app啊?
张艺谋的2047好看么? 有机器人对话么
现在聚能集团叫我的一个朋友也拉了进去,给我
有关爱国的精彩语段三个
这是那个直播软件啊
香煎翘嘴白鱼怎么做好吃,香煎翘嘴白鱼的家
买海外进口保健品选择哪家?
嫁月薪1500的男人会幸福吗
吃柀枇有什么好处:
单选题下列关于无机盐的叙述,错误的是A.缺铁
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?