ClientToScreen 和ScreenToClient用法
ClientToScreen( )是把窗口坐标转换为屏幕坐标
ScreenToClient( )是把屏幕坐标转换为窗口坐标
屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的
VC下,有些函数使用窗口坐标,有些使用屏幕坐标,使用时要分清。
一个窗体分为两部分:系统区和客户区
象标题和菜单之类的是系统区,由系统来控制,客户区就是你的地盘喽!!!
Width, Height 是指整体的,ClientWidth, ClientHeight是指客户区的,两者相减就是
系统区的啦!!!
ClientToScreen是把坐标从当前窗体转化成全屏幕的!!!
ScreenToClient是把屏幕坐标转化成相对当前窗体的坐标!!!!
bool m_bIsLButtonDawn =false;
void CDrawDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CWnd *pwnd=GetDlgItem(IDC_EDIT1);
CDC *pdc=pwnd->GetDC();
CRect rect;
this->ClientToScreen(&point);
pwnd->ScreenToClient(&point);
pwnd->GetClientRect(&rect);
// HCURSOR hcur=::LoadCursorFromFile("pen.cur");
// SetClassLong(GetSafeHwnd(),GCL_HCURSOR,(LONG)hcur);
// CPen pen(PS_INSIDEFRAME,-1,RGB(255,255,255));
// CPen* olePen=pdc->SelectObject(&pen);
if(rect.PtInRect(point) && m_bIsLButtonDawn )
{
pdc->DPtoLP(&m_fp);
pdc->MoveTo(m_fp);
pdc->DPtoLP(&point);
pdc->LineTo(point);
}
m_fp=point;
// pdc->SelectObject(olePen);
ReleaseDC(pdc);
CDialog::OnMouseMove(nFlags, point);
}
void CDrawDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
m_bIsLButtonDawn =false;
// TODO: Add your message handler code here and/or call default
/**//*
CWnd *pwnd=GetDlgItem(IDC_EDIT1);
CDC *pdc=pwnd->GetDC();
CRect rect;
this->ClientToScreen(&point);
pwnd->ScreenToClient(&point);
pwnd->GetClientRect(&rect);
if(rect.PtInRect(point))
{
pdc->DPtoLP(&m_fp);
pdc->MoveTo(m_fp);
pdc->DPtoLP(&point);
pdc->LineTo(point);
}
ReleaseDC(pdc);*/
CDialog::OnLButtonUp(nFlags, point);
}
void CDrawDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CWnd *pwnd=GetDlgItem(IDC_EDIT1);
CDC *pDC=pwnd->GetDC();
CRect rect;
this->ClientToScreen(&point);
pwnd->ScreenToClient(&point);
pwnd->GetClientRect(&rect);
if(rect.PtInRect(point))
{
m_fp.x=point.x;
m_fp.y=point.y;
}
ReleaseDC(pDC);
m_bIsLButtonDawn =true;
CDialog::OnLButtonDown(nFlags, point);
}
ClientToScreen 和ScreenToClient用法相关推荐
- MFC ClientToScreen 和 ScreenToClient
ClientToScreen( )是把窗口坐标转换为屏幕坐标 ScreenToClient( )是把屏幕坐标转换为窗口坐标 屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的 ...
- ClientToScreen 和ScreenToClient 及绘图
http://blog.csdn.net/ljh0600301217/article/details/8736494 ClientToScreen( )是把窗口坐标转换为屏幕坐标 pWnd->G ...
- ClientToScreen( )和ScreenToClient( )区别
ClientToScreen( )是把窗口坐标转换为屏幕坐标 ScreenToClient( )是把屏幕坐标转换为窗口坐标 屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的 VC下, ...
- 第05章 图形基础
图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视讯显示器和打印机上显示图形.正如您所认为的那样,GDI是Windows非常重要的部分.不只 ...
- (转载博文)VC++API速查
窗口处理 2.1 窗口简介 2.2.1 创建普通窗口(CreateWindow.CreateWindowEx) 2.2.2 关闭窗口(CloseWindow) 2.2.3 销毁窗口(DestroyWi ...
- 【2012年终总结】之一 opencv + ds采集摄像头视频 MFC点点滴滴
1.MFC单文档多文档程序 不让MFC来更新菜单 1 在CMainFrame::CMainFrame中添加 2 3 m_bAutoMenuEnable = FALSE; 标题栏图标的更改 1 //cu ...
- MFC函数书本速查 API函数大全
基础类 CObject AssertValid p3 Dump p3 IsSerializable p4 Serializable p4 GetRuntimeClass p4 IsKindOf p5 ...
- 循序渐进全球化 镜像识别
循序渐进全球化 镜像识别 本页内容 概述和说明 示例 Win32 中的镜像 镜像 .NET Framework 网页中的镜像 概述和说明 对 于从右向左 (RTL) 的语言,不但文本对齐和文本阅读顺序 ...
- MFC利用定时器实现图片移动
(1)在窗口中放入Picture Static控件,并设置控件图片属性为Bitmap,如图所示 (2)插入资源图片 选择Resource视图,插入需要的加载的图片资源. (3)设置需要显示的图片 HB ...
- QT源码拾贝6-11(qwindowswindow)
目录 6 窗口激活相关的函数QWindowsForeignWindow::setParent 7 QDebug运算符<<重载 8 vscode的windows的变量提示很有意思 9 ...
最新文章
- 4g内存 mysql_4G内存 mysql数据库
- Java遍历Map对象的四种方法
- Android之AudioManager(音频管理器)详解
- 数据库报错SELECT list is not in GROUP BY clause and contains nonaggregated col
- 编译安装PCL点云库,Kinect2驱动,乐视Astra相机驱动
- Java基础:Collection集合、Iterator迭代器以及泛型
- 陈风莲(帮别人名字作诗)
- 工业互联网发展行动计划(2018-2020年)
- 我的日常工作剖析,美好的一天,从每一天开始。
- Java实现 LeetCode 824 山羊拉丁文(暴力)
- 在Ubuntu 18.04上安装man中文帮助手册的方法手记
- 速卖通教你如何提升店铺转化率——测评补单
- NETSCOUT 1T10G-1000-2PAK网络分析仪套包
- 李笑来《财富自由之路》读书笔记(Ⅰ)
- 正面管教之PHP_正面管教家长互助(PHP)体验课1
- 向量的点乘与X乘以及意义
- 抖音IP属地是实时更新的吗?能不显示吗?
- 城市多杆合一智慧路灯综合杆改造的意义
- 电子科大和北邮计算机,电子科技大学和北京邮电大学的计算机专业哪个好?多角度分析...
- 谷哥学术2022年资源分享下载列表
热门文章
- linux 指令tftp传输文件_tftp命令怎么传输文件,tftp命令怎么传输文件具体操作方法?...
- Hi3559A Hi3519A Hi3556A算力对比
- win7计算器左移、右移操作
- 中国省份、市区、地区县信息表
- 基于html+css房地产销售系统设计与实现-计算机毕业设计源码+LW文档
- openresty性能调优
- fixdown down,一个时代的终结。
- ZYNQ图像处理(2)——ov5640_hdmi显示环境搭建
- 纤亿通解读—光纤通信系统工作原理
- 2021计算机二级圆锥题,2021年计算机二级考试真题以及答案