VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 558|回复: 2

[已解决] picture control改变图片问题

[复制链接]
82_avatar_middle
online_vip 发表于 2018-3-6 16:59:41 | 显示全部楼层 |阅读模式
本帖最后由 koolit 于 2018-3-7 16:00 编辑

我在重写onMouseMove,实现鼠标移动到控件区域改变图片问题,移开却改变不了,不知道怎么刷,求教:
部份代码:
        ClientToScreen(&point);
        CRect rect;
        GetDlgItem(IDC_PIC_DEV)->GetClientRect(rect);
        GetDlgItem(IDC_PIC_DEV)->ClientToScreen(rect);
        if (rect.PtInRect(point))
        {
                CImage cim1;
                cim1.Load(_T("C:\\Users\\Administrator\\Desktop\\图片\\jiankong.png"));
                HBITMAP hbit1;
                hbit1=cim1.Detach();
                CStatic *m_picControl1=(CStatic*)GetDlgItem(IDC_PIC_DEV);
                m_picControl1->SetBitmap(hbit1);
        }else
        {
                CImage cim1;
                cim1.Load(_T("C:\\Users\\Administrator\\Desktop\\图片\\n_jiankong.png"));
                HBITMAP hbit1;
                hbit1=cim1.Detach();
                CStatic *m_picControl1=(CStatic*)GetDlgItem(IDC_PIC_DEV);
                m_picControl1->SetBitmap(hbit1);               
        }
        CDialogEx::OnMouseMove(nFlags, point);




上一篇:有关cwebbrowser2使用自定义的user-agent
下一篇:连续的条件运算符(? :)表示什么意思?
51_avatar_middle
online_admins 发表于 2018-3-6 17:13:56 | 显示全部楼层
你这种写法貌似不太合理,鼠标不停的移动,就会不停的调用 onMouseMove 函数。你应该判断当前的图片是不是跟上次的一样,如果不一样的话再去 SetBitmap,一样的话就什么都不做。刷新的话可以使用 Invalidata 试试
82_avatar_middle
ico_lz  楼主| 发表于 2018-3-7 09:45:05 | 显示全部楼层
Syc 发表于 2018-3-6 17:13
你这种写法貌似不太合理,鼠标不停的移动,就会不停的调用 onMouseMove 函数。你应该判断当前的图片是不是 ...

感谢,问题解决了
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-20 16:17

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表