博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC用CWindowDC dc(GetParent())不能在标题栏画线的问题
阅读量:4510 次
发布时间:2019-06-08

本文共 517 字,大约阅读时间需要 1 分钟。

MFC用CWindowDC类实现画线时,本来应该在整个框架窗口都能画的,可是实际上不能在标题栏画,菜单栏和工具栏都可以,而且画在 view 区的线条,平移到frame窗口上了,即相对 view 的坐标(0,0),变成相对frame的坐标(0,0)了。

疑问:
如何修改代码,可以实现
1.鼠标可以在标题栏画线

2.鼠标落在哪里,线条就画在哪里

1 CWindowDC dc(GetParent());2 dc.MoveTo(m_ptOrigin);3 dc.LineTo(point);

原因探索:

非客户区域的鼠标消息和客户区的鼠标消息不同的,需要区分处理。

afx_msg void OnNcLButtonDown(
   UINT nHitTest,
   CPoint point 
);
afx_msg void OnNcLButtonUp(
   UINT nHitTest,
   CPoint point 
);
这两个消息也得处理,并和WM_LBUTTONDOWN等消息的坐标进行转换。

转载于:https://www.cnblogs.com/MasterMonkInTemple/archive/2013/05/24/3098154.html

你可能感兴趣的文章
c++11——可变参数模板
查看>>
from imp import * 重新加载导入的模块reload
查看>>
二叉树三种遍历调试运行版
查看>>
关于PHP、python使用的CRC32函数
查看>>
JS自动关闭授权弹窗,并刷新父页面
查看>>
c#语言几种常见循环代码
查看>>
SQL多表连接查询(详细实例)
查看>>
Http中涉及到的知识点总结
查看>>
adb命令记录
查看>>
swift初学日志
查看>>
Eclipse上GIT插件_客户端配置
查看>>
JavaScript浏览器对象之二Document对象
查看>>
js 乘除算法 浮点 精度解决办法
查看>>
sqlserver2005版本的mdf文件,还没有log文件,
查看>>
错误“该伙伴事务管理器已经禁止了它对远程/网络事务的支持”解决方案
查看>>
System x 服务器制作ServerGuide U盘安装Windows Server 2008 操作系统 --不格式化盘
查看>>
前端常见跨域解决方案(全)
查看>>
umi---className设置多个样式
查看>>
网页包抓取工具Fiddler工具简单设置
查看>>
周总结报告
查看>>