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用法相关推荐

  1. MFC ClientToScreen 和 ScreenToClient

       ClientToScreen( )是把窗口坐标转换为屏幕坐标  ScreenToClient( )是把屏幕坐标转换为窗口坐标  屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的 ...

  2. ClientToScreen 和ScreenToClient 及绘图

    http://blog.csdn.net/ljh0600301217/article/details/8736494 ClientToScreen( )是把窗口坐标转换为屏幕坐标 pWnd->G ...

  3. ClientToScreen( )和ScreenToClient( )区别

    ClientToScreen( )是把窗口坐标转换为屏幕坐标 ScreenToClient( )是把屏幕坐标转换为窗口坐标 屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的 VC下, ...

  4. 第05章 图形基础

    图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视讯显示器和打印机上显示图形.正如您所认为的那样,GDI是Windows非常重要的部分.不只 ...

  5. (转载博文)VC++API速查

    窗口处理 2.1 窗口简介 2.2.1 创建普通窗口(CreateWindow.CreateWindowEx) 2.2.2 关闭窗口(CloseWindow) 2.2.3 销毁窗口(DestroyWi ...

  6. 【2012年终总结】之一 opencv + ds采集摄像头视频 MFC点点滴滴

    1.MFC单文档多文档程序 不让MFC来更新菜单 1 在CMainFrame::CMainFrame中添加 2 3 m_bAutoMenuEnable = FALSE; 标题栏图标的更改 1 //cu ...

  7. MFC函数书本速查 API函数大全

    基础类 CObject AssertValid p3 Dump p3 IsSerializable p4 Serializable p4 GetRuntimeClass p4 IsKindOf p5 ...

  8. 循序渐进全球化 镜像识别

    循序渐进全球化 镜像识别 本页内容 概述和说明 示例 Win32 中的镜像 镜像 .NET Framework 网页中的镜像 概述和说明 对 于从右向左 (RTL) 的语言,不但文本对齐和文本阅读顺序 ...

  9. MFC利用定时器实现图片移动

    (1)在窗口中放入Picture Static控件,并设置控件图片属性为Bitmap,如图所示 (2)插入资源图片 选择Resource视图,插入需要的加载的图片资源. (3)设置需要显示的图片 HB ...

  10. QT源码拾贝6-11(qwindowswindow)

    目录 6  窗口激活相关的函数QWindowsForeignWindow::setParent 7  QDebug运算符<<重载 8  vscode的windows的变量提示很有意思 9  ...

最新文章

  1. 4g内存 mysql_4G内存 mysql数据库
  2. Java遍历Map对象的四种方法
  3. Android之AudioManager(音频管理器)详解
  4. 数据库报错SELECT list is not in GROUP BY clause and contains nonaggregated col
  5. 编译安装PCL点云库,Kinect2驱动,乐视Astra相机驱动
  6. Java基础:Collection集合、Iterator迭代器以及泛型
  7. 陈风莲(帮别人名字作诗)
  8. 工业互联网发展行动计划(2018-2020年)
  9. 我的日常工作剖析,美好的一天,从每一天开始。
  10. Java实现 LeetCode 824 山羊拉丁文(暴力)
  11. 在Ubuntu 18.04上安装man中文帮助手册的方法手记
  12. 速卖通教你如何提升店铺转化率——测评补单
  13. NETSCOUT 1T10G-1000-2PAK网络分析仪套包
  14. 李笑来《财富自由之路》读书笔记(Ⅰ)
  15. 正面管教之PHP_正面管教家长互助(PHP)体验课1
  16. 向量的点乘与X乘以及意义
  17. 抖音IP属地是实时更新的吗?能不显示吗?
  18. 城市多杆合一智慧路灯综合杆改造的意义
  19. 电子科大和北邮计算机,电子科技大学和北京邮电大学的计算机专业哪个好?多角度分析...
  20. 谷哥学术2022年资源分享下载列表

热门文章

  1. linux 指令tftp传输文件_tftp命令怎么传输文件,tftp命令怎么传输文件具体操作方法?...
  2. Hi3559A Hi3519A Hi3556A算力对比
  3. win7计算器左移、右移操作
  4. 中国省份、市区、地区县信息表
  5. 基于html+css房地产销售系统设计与实现-计算机毕业设计源码+LW文档
  6. openresty性能调优
  7. fixdown down,一个时代的终结。
  8. ZYNQ图像处理(2)——ov5640_hdmi显示环境搭建
  9. 纤亿通解读—光纤通信系统工作原理
  10. 2021计算机二级圆锥题,2021年计算机二级考试真题以及答案