在客户区、非客户区和桌面画线
来源:互联网 发布:less.min.js 无法加载 编辑:程序博客网 时间:2024/04/29 16:07
来自孙鑫《VC++深入详解》
客户区:即视类窗口
非客户区:包括标题栏、菜单栏、工具栏和状态栏。
在画图之前,需要获取线图的起始点与终点。即鼠标左键按下是起始点,左键弹起是终点。
以下代码中的m_ptOrigin均记录在OnLButtonDown函数中,m_ptOrigin = point ;
一:利用Platform SDK函数实现客户区画线功能
void CTView::OnLButtonUp(UINT nFlags, CPoint point)
{
//首先获得窗口的设备描述表
HDC hdc;
hdc = ::GetDC( m_hWnd );
//移动到线条的起点
MoveToEx( hdc, m_ptOrigin.x, m_ptOrigin.y, NULL );
//画线
LineTo( hdc, point.x, point.y );
//释放设备描述表
::ReleaseDC( m_hWnd, hdc );
CView::OnLButtonUp(nFlags, point);
}
二:利用MFC的CDC类在客户区实现画线功能
void CTView::OnLButtonUp(UINT nFlags, CPoint point)
{
CDC *pDC = GetDC();
pDC->MoveTo( m_ptOrigin );
pDC->LineTo( point );
ReleaseDC( pDC );
CView::OnLButtonUp(nFlags, point);
}
三:利用MFC的CClientDC类在客户区实现画线功能
void CTView::OnLButtonUp(UINT nFlags, CPoint point)
{
CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
四:利用MFC的CWindowDC类在客户区实现画线功能
void CTView::OnLButtonUp(UINT nFlags, CPoint point)
{
CWindowDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
五:利用MFC的CClientDC类在非客户区实现画线功能
void CTView::OnLButtonUp(UINT nFlags, CPoint point)
{
CClientDC dc(GetParent());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
注:视类窗口只有客户区(即视类窗口本身),而框架窗口既有客户区(即菜单栏以下部分),还有非客户区(标题栏、菜单栏、工具栏和状态栏)。视窗口的父窗口就是框架窗口即与CMainFrame类相关联的窗口
六:利用MFC的CWindowDC类在非客户区实现画线功能
void CTView::OnLButtonUp(UINT nFlags, CPoint point)
{
CWindowDC dc( GetParent() );
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
七:利用MFC的CWindowDC类在桌面区实现画线功能
void CTView::OnLButtonUp(UINT nFlags, CPoint point)
{
CWindowDC dc(GetDesktopWindow());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
- 在客户区、非客户区和桌面画线
- 客户区 非客户区
- 客户区&非客户区
- 客户区和非客户区?窗口客户区和视图客户区?
- 在单文档的客户区和非客户区画图
- 使用绘图句柄HDC在客户区、非客户区、临时客户区绘图
- 什么是客户区/非客户区
- 什么是客户区/非客户区?
- MFC-客户区与非客户区
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别(转)
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别!
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别!
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别!
- 备份:什么是Web2.0
- 体系结构的历险--组件技术的结构和设计
- Tomcat全攻略
- BCB下画刷旋转实现
- 在.Net中使用异步(一)
- 在客户区、非客户区和桌面画线
- 一个程序员的成长的六个阶段
- Pku acm 1423 Big Number 解题报告----求n!的位数
- 如果微软设计,Gmail将是什么样子?
- 北京玉渊潭公园第二十届樱花节
- C Runtime
- Java类加载原理及类加载器
- 清明
- X.25各类分组的格式及其功能