MFC用CWindowDC dc(GetParent())不能在标题栏画线的问题
2013-05-24 23:49
183 查看
MFC用CWindowDC类实现画线时,本来应该在整个框架窗口都能画的,可是实际上不能在标题栏画,菜单栏和工具栏都可以,而且画在 view 区的线条,平移到frame窗口上了,即相对 view 的坐标(0,0),变成相对frame的坐标(0,0)了。
疑问:
如何修改代码,可以实现
1.鼠标可以在标题栏画线
2.鼠标落在哪里,线条就画在哪里
原因探索:
非客户区域的鼠标消息和客户区的鼠标消息不同的,需要区分处理。
afx_msg void OnNcLButtonDown(
UINT nHitTest,
CPoint point
);
afx_msg void OnNcLButtonUp(
UINT nHitTest,
CPoint point
);
这两个消息也得处理,并和WM_LBUTTONDOWN等消息的坐标进行转换。
疑问:
如何修改代码,可以实现
1.鼠标可以在标题栏画线
2.鼠标落在哪里,线条就画在哪里
CWindowDC dc(GetParent()); dc.MoveTo(m_ptOrigin); dc.LineTo(point);
原因探索:
非客户区域的鼠标消息和客户区的鼠标消息不同的,需要区分处理。
afx_msg void OnNcLButtonDown(
UINT nHitTest,
CPoint point
);
afx_msg void OnNcLButtonUp(
UINT nHitTest,
CPoint point
);
这两个消息也得处理,并和WM_LBUTTONDOWN等消息的坐标进行转换。
相关文章推荐
- mfc2015不能添加控件变量问题的解决方法
- 解决用android Studio开发不能去除标题栏的问题
- 解决用android Studio开发不能去除标题栏的问题
- MFC对话框border设置成none,点击任务栏不能最小化问题
- MFC中关于子对话框中编辑框不能编辑的问题
- 解决用android Studio开发不能去除标题栏的问题
- VS2010 MFC做了一个简单的串口通信上位机,那么问题来了:生成的exe不能再同学的电脑上运行
- 解决WIN7-64,VS2008编译的MFC程序在WIN7-32/XP上不能运行的问题
- 解决VS2005编译的MFC在没有安装VS2005的机器上不能运行的问题
- MFC串口上位机(采用静态库编译生成的)不能在其他电脑运行的问题
- 解决CListCtrl闪烁及水平滚动条不能跟踪拖动的问题(MFC)
- MFC遇到的一个字符集问题:不能将参数1从“const char []”转换为“LPCTSTR”
- QT窗体去掉标题栏后不能移动的问题
- mfc中picture control 自定义控件不能响应鼠标问题
- Visual Studio 2013 MFC基于对话框的程序中加入TeeChart控件后,编译时显示不能实例化抽象类的问题
- MFC 菜鸟之问——鼠标移动获取坐标和画线问题
- 解决用android Studio开发不能去除标题栏的问题
- MFC Unicode CFile 不能写汉字的问题
- MFC之调用DLL的问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR
- 关于VC6.0 MFC+ATL做出的COM,其内部的windows窗口不能以XP Theme模式显示的问题彻底解决