ClientToScreen 和ScreenToClient

摘要:
ClientToScreen()用于将窗口坐标转换为屏幕坐标ScreenToClient()用于把屏幕坐标转换为窗口坐标。屏幕坐标相对于屏幕左上角,而窗口坐标相对于窗口用户区域左上角的VC。一些函数使用窗口坐标,而另一些函数使用屏幕坐标,使用时应加以区分。窗口分为两部分:系统区域和客户区域(如标题和菜单)是系统区域,由系统控制,客户区域是您的领地!!!Width和Height指的是整体,ClientWidth和ClientHeight指客户区域,两者之和就是系统区域!!!ScreenToClient用于将屏幕坐标转换为相对于当前表单的坐标!!!!

ClientToScreen( )是把窗口坐标转换为屏幕坐标
ClientToScreen 和ScreenToClient第1张ScreenToClient( )是把屏幕坐标转换为窗口坐标
ClientToScreen 和ScreenToClient第1张屏幕坐标是相对于屏幕左上角的,而窗口坐标是相对于窗口用户区左上角的
ClientToScreen 和ScreenToClient第1张VC下,有些函数使用窗口坐标,有些使用屏幕坐标,使用时要分清。
ClientToScreen 和ScreenToClient第1张
ClientToScreen 和ScreenToClient第1张
ClientToScreen 和ScreenToClient第1张一个窗体分为两部分:系统区和客户区
ClientToScreen 和ScreenToClient第1张象标题和菜单之类的是系统区,由系统来控制,客户区就是你的地盘喽!!!
ClientToScreen 和ScreenToClient第1张Width, Height 是指整体的,ClientWidth, ClientHeight是指客户区的,两者相减就是
ClientToScreen 和ScreenToClient第1张系统区的啦!!!
ClientToScreen 和ScreenToClient第1张ClientToScreen是把坐标从当前窗体转化成全屏幕的!!!
ClientToScreen 和ScreenToClient第1张ScreenToClient是把屏幕坐标转化成相对当前窗体的坐标!!!!
ClientToScreen 和ScreenToClient第1张
ClientToScreen 和ScreenToClient第1张bool  m_bIsLButtonDawn =false;
ClientToScreen 和ScreenToClient第1张
ClientToScreen 和ScreenToClient第1张void CDrawDlg::OnMouseMove(UINT nFlags, CPoint point) 
ClientToScreen 和ScreenToClient第16张{
ClientToScreen 和ScreenToClient第17张 // TODO: Add your message handler code here and/or call default
ClientToScreen 和ScreenToClient第17张 CWnd *pwnd=GetDlgItem(IDC_EDIT1);
ClientToScreen 和ScreenToClient第17张    CDC *pdc=pwnd->GetDC();
ClientToScreen 和ScreenToClient第17张 CRect rect;
ClientToScreen 和ScreenToClient第17张 this->ClientToScreen(&point);
ClientToScreen 和ScreenToClient第17张 pwnd->ScreenToClient(&point);
ClientToScreen 和ScreenToClient第17张 pwnd->GetClientRect(&rect);
ClientToScreen 和ScreenToClient第17张
ClientToScreen 和ScreenToClient第17张//  HCURSOR hcur=::LoadCursorFromFile("pen.cur"); 
ClientToScreen 和ScreenToClient第17张 //  SetClassLong(GetSafeHwnd(),GCL_HCURSOR,(LONG)hcur);  
ClientToScreen 和ScreenToClient第17张
ClientToScreen 和ScreenToClient第17张// CPen pen(PS_INSIDEFRAME,-1,RGB(255,255,255));
ClientToScreen 和ScreenToClient第17张//     CPen* olePen=pdc->SelectObject(&pen);
ClientToScreen 和ScreenToClient第17张 if(rect.PtInRect(point) &&  m_bIsLButtonDawn )
ClientToScreen 和ScreenToClient第31张 {
ClientToScreen 和ScreenToClient第17张
ClientToScreen 和ScreenToClient第17张  pdc->DPtoLP(&m_fp);
ClientToScreen 和ScreenToClient第17张  pdc->MoveTo(m_fp);
ClientToScreen 和ScreenToClient第17张  pdc->DPtoLP(&point);
ClientToScreen 和ScreenToClient第17张  pdc->LineTo(point);
ClientToScreen 和ScreenToClient第17张
ClientToScreen 和ScreenToClient第38张 }

ClientToScreen 和ScreenToClient第17张  m_fp=point;
ClientToScreen 和ScreenToClient第17张//  pdc->SelectObject(olePen);
ClientToScreen 和ScreenToClient第17张 ReleaseDC(pdc);
ClientToScreen 和ScreenToClient第17张 CDialog::OnMouseMove(nFlags, point);
ClientToScreen 和ScreenToClient第43张}

ClientToScreen 和ScreenToClient第1张
ClientToScreen 和ScreenToClient第1张void CDrawDlg::OnLButtonUp(UINT nFlags, CPoint point) 
ClientToScreen 和ScreenToClient第16张{
ClientToScreen 和ScreenToClient第17张  m_bIsLButtonDawn =false;
ClientToScreen 和ScreenToClient第17张 // TODO: Add your message handler code here and/or call default
ClientToScreen 和ScreenToClient第31张/*
ClientToScreen 和ScreenToClient第17张   CWnd *pwnd=GetDlgItem(IDC_EDIT1);
ClientToScreen 和ScreenToClient第17张     CDC *pdc=pwnd->GetDC();
ClientToScreen 和ScreenToClient第17张  CRect rect;
ClientToScreen 和ScreenToClient第17张  this->ClientToScreen(&point);
ClientToScreen 和ScreenToClient第17张  pwnd->ScreenToClient(&point);
ClientToScreen 和ScreenToClient第17张  pwnd->GetClientRect(&rect);
ClientToScreen 和ScreenToClient第17张  
ClientToScreen 和ScreenToClient第17张  if(rect.PtInRect(point))
ClientToScreen 和ScreenToClient第17张  {
ClientToScreen 和ScreenToClient第17张   pdc->DPtoLP(&m_fp);
ClientToScreen 和ScreenToClient第17张   pdc->MoveTo(m_fp);
ClientToScreen 和ScreenToClient第17张   pdc->DPtoLP(&point);
ClientToScreen 和ScreenToClient第17张   pdc->LineTo(point);
ClientToScreen 和ScreenToClient第17张 
ClientToScreen 和ScreenToClient第17张  }
ClientToScreen 和ScreenToClient第38张  ReleaseDC(pdc);*/

ClientToScreen 和ScreenToClient第17张 
ClientToScreen 和ScreenToClient第17张 CDialog::OnLButtonUp(nFlags, point);
ClientToScreen 和ScreenToClient第43张}

ClientToScreen 和ScreenToClient第1张
ClientToScreen 和ScreenToClient第1张void CDrawDlg::OnLButtonDown(UINT nFlags, CPoint point) 
ClientToScreen 和ScreenToClient第16张{
ClientToScreen 和ScreenToClient第17张 // TODO: Add your message handler code here and/or call default
ClientToScreen 和ScreenToClient第17张 CWnd *pwnd=GetDlgItem(IDC_EDIT1);
ClientToScreen 和ScreenToClient第17张 CDC *pDC=pwnd->GetDC();
ClientToScreen 和ScreenToClient第17张 CRect rect;
ClientToScreen 和ScreenToClient第17张 this->ClientToScreen(&point);
ClientToScreen 和ScreenToClient第17张 pwnd->ScreenToClient(&point);
ClientToScreen 和ScreenToClient第17张 pwnd->GetClientRect(&rect);
ClientToScreen 和ScreenToClient第17张 if(rect.PtInRect(point))
ClientToScreen 和ScreenToClient第31张 {
ClientToScreen 和ScreenToClient第17张  m_fp.x=point.x;
ClientToScreen 和ScreenToClient第17张  m_fp.y=point.y;
ClientToScreen 和ScreenToClient第38张 }

ClientToScreen 和ScreenToClient第17张 ReleaseDC(pDC);
ClientToScreen 和ScreenToClient第17张  m_bIsLButtonDawn =true;
ClientToScreen 和ScreenToClient第17张 CDialog::OnLButtonDown(nFlags, point);
ClientToScreen 和ScreenToClient第43张}

ClientToScreen 和ScreenToClient第1张

免责声明:文章转载自《ClientToScreen 和ScreenToClient》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OS:VM虚拟机连不上网络小米手环4NFC版更换个性表盘分享下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

vue3.0打包后页面空白,放置服务器

lintOnSave:true,//配置跨域devServer:{open:true、host:'localhost'、port:3000、https:false,//以上IP地址和端口是我们计算机的本地地址;以下是需要跨域的代理:{//配置跨域名“/api”:{target:”http://106.12.148.51',//这里的背景地址是模拟的;您应该填...

ArcGIS Pro 中文(简体)语言包-指定路径为空

在电脑上安装了ArcGISPro2.5,在安装中文(简体)语言包的时候,报错:指定路径为空。因此,新建立一个Chinese_CN项即可。经过上述修改,就可以成功安装中文(简体)语言包了。...

Java连接Mysql数据库异常:Public Key Retrieval is not allowed

1) 设置dataSource。setAllowPublicKeyRetrieval通过代码;数据源。setUseSSL;2) 将jdbc url设置为jdbc:mysql://localhost:3306/Database_dbName?...

Selenium操作示例——鼠标悬停显示二级菜单,再点击二级菜单或下拉列表

这两天在python中玩selenium时,我遇到了一个问题,那就是鼠标移动到页面上的一个按钮或菜单,二级菜单或下拉菜单自动弹出,然后二级菜单或者下拉列表自动点击。...

Maven settings.xml配置详解

让我们来谈谈设置。对于Maven,xml相当于全局配置,用于所有项目。maven2-xml中有两个设置,作为全局配置位于maven2的安装目录conf下。对于团队设置,一致的定义是关键,因此maven2/conf Xml下面的设置是团队的通用配置文件。当然,每个成员都需要特殊的用户定义设置,例如用户信息,其他设置也是如此。xml用作本地配置。默认位置为:${...

微信小程序通过background-image设置背景图片

微信小程序通过背景图像设置背景:仅支持在线图像和base64图像,不支持本地图像;设置base64图像的步骤如下:1.在网站上http://imgbase64.duoshitong.com/将图片转换为base64格式2的文本。在WXSS中使用上述文本:background image:url(“data:image/png;base64,iVBORw0KG...