mfc中如何通过点击图片控件上的某个点获取鼠标位置来判断属于哪个区域然后让图片控件显示另一张图片,

mfc中如何通过点击图片控件上的某个点获取鼠标位置来判断属于哪个区域然后让图片控件显示另一张图片,求代码加解释... mfc中如何通过点击图片控件上的某个点获取鼠标位置来判断属于哪个区域然后让图片控件显示另一张图片,求代码加解释 展开
 我来答
bhtzu
2015-09-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4228万
展开全部
图片控件不会默认捕获鼠标消息,因此处理代码放在对话框的OnLButtonDown这样的鼠标消息中即可。
鼠标消息函数会默认带入鼠标位置,而图片框的位置可以通过图片控件变量或指针的GetWindowRect获取。
之后通过rect.PtInRect(point)函数即可判断鼠标是否在图片上,至于图片上的具体位置,就需要你通过CRect或者CRgn来一一记录了(这并不太容易),之后依然是通过PtInRect和CRgn的PtInRegion来判断是否在区域(这需要一个循环语句)。
至于显示另一个图片,通过CBitmap导入资源后,就是图片控件的SetBitmap就可以了。
更多追问追答
追问
就是在运行的时候。如何实现改变图片控件的图片呢
追答
CStatic *pic = (CStatic *)GetDlgItem(IDC_STATICP);
HBITMAP oldb = pic->SetBitmap(hHandle);
DeleteObject(oldb);

通过这样的代码就可以了,你需要的是获取一个新的HBITMAP句柄,这个可以通过CBitmap类实现。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式