关于换肤贴图的问题,和OffsetRect函数有关

winmenaruto winmenaruto 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面是我遇到的问题,是关于贴图时的问题。
rtButtons.right = rtButtons.left - 3; //rtButtons是CRect类的,表示标题栏旁边的帮助按钮
rtButtons.left = rtButtons.right - 19;
pBitmap->LoadBitmap(IDB_HELP_NORMAL);
pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pDC->BitBlt(rtButtons.left, rtButtons.top, rtButtons.Width(), rtButtons.Height(), pDisplayMemDC, 0, 0, SRCCOPY);
pDisplayMemDC->SelectObject(pOldBitmap);
m_rtButtHelp = rtButtons;
m_rtButtHelp.OffsetRect(rtWnd.TopLeft());
pBitmap->DeleteObject();

m_rtButtHelp.OffsetRect(rtWnd.TopLeft());搞不清这句话是做什么的。按理说是将m_rtButtHelp这个能够覆盖帮助按钮的矩形移动到rtWnd的左上角,但是这么做的意义是什么呢??但是如果我把这句话注释了,鼠标移动到帮助键的图标上,贴图就无法出现,这到底是怎么回事?
m_rtButtHelp.OffsetRect(rtWnd.TopLeft());什么意思,把当前的贴图往rtWnd.TopLeft移动?rtWnd.TopLeft是(0,0)啊,而且把rtWnd.TopLeft替换为(0,0)程序也不正常,rtWnd.TopLeft不是(0,0)么?
...全文

相关推荐

MFC自定义皮肤框架:从零实现窗口重绘与换肤技术

在Windows桌面应用开发中,界面定制化是提升用户体验和产品辨识度的重要环节。其核心原理在于理解Windows GUI的底层绘制机制,特别是消息循环与GDI/GDI+绘图技术。通过重写窗口过程(Window Procedure)和处理关键消息(如WM_NCPAINT、WM_NCHITTEST),开发者可以完全掌控窗口的每一个像素,实现从边框、标题栏到内部控件的全方位自定义。这项技术的核心价值在于提供了极致的可控性和零第三方依赖的部署优势,尤其适合需要维护历史MFC项目或对安装包体积有严格要求的场景。例如,

weixin_34331102

《模式识别与数据挖掘》配套PPT课件

《模式识别与数据挖掘》配套PPT课件

Bryan Ding

科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?_8.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核

人工智能通识教育(中职版)课程标准+PPT课件+部分素材+电子活页+在线考核

Bryan Ding

跨境电商供应链管理(AIGC版)课件+教案+参考答案

跨境电商供应链管理(AIGC版)课件+教案+参考答案

Bryan Ding
评论 7
收藏 已收藏
分享
返回顶部
winmenaruto
VC/MFC 16,550 成员 421,606 内容