在状态条中显示鼠标的设备坐标与逻辑坐标
来源:互联网 发布:恒大淘宝足球股价 编辑:程序博客网 时间:2024/05/21 03:17
显示器的设备坐标系的原点在客户区的左上角,x轴向右增长,y轴向下增长。我们要设置的逻辑坐标系的原点则在客户区的中心,x轴向右增长,y轴向上增长,如一个笛卡尔坐标系一般。
为CChildView添加一个成员函数void OnPrepareDC(CDC * pDC, CPrintInfo * pInfo = NULL);
void OnPrepareDC(CDC * pDC, CPrintInfo * pInfo){
CRect rect;
// 设置映射模式为LOMETRIC (0.1mm),右上为增长方向
pDC->SetMapMode (MM_LOMETRIC);
// 将坐标原点定在客户区的中心
GetClientRect(rect);
pDC->SetViewportOrg(rect.Width()/2, rect.Height()/2);
}
为CChildView响应鼠标移动消息,并在状态条中显示鼠标的坐标值。m_ptMouse数据成员是原打算做十字交叉线用的,在此使用没有实际意义。
void CChildView::OnMouseMove(UINT nFlags, CPoint point){
CClientDC dc(this);
CString str;
OnPrepareDC(&dc);
//要访问类CMainFrame,需要将mainfrm.h文件引入
CMainFrame * pFrame = (CMainFrame *) AfxGetApp()->m_pMainWnd;
//要访问CMainFrame的数据成员m_wndStatusBar,需要手工修改mainfrm.h,public这个数据成员
CStatusBar * pStatus = (CStatusBar *) &pFrame->m_wndStatusBar;
m_ptMouse = point;
str.Format ("设备坐标 X=%i pixel, Y=%i pixel", m_ptMouse.x, m_ptMouse.y);
pStatus->SetPaneText(1, str);
dc.DPtoLP(&m_ptMouse);
str.Format ("逻辑坐标 X=%i * 0.1mm, Y=%i * 0.1mm", m_ptMouse.x, m_ptMouse.y);
pStatus->SetPaneText(2, str);
}
- 在状态条中显示鼠标的设备坐标与逻辑坐标
- 在状态条中显示鼠标的设备坐标与逻辑坐标
- 逻辑坐标与设备坐标
- 逻辑坐标与设备坐标
- 设备坐标、逻辑坐标、物理坐标的区别与转换
- 滚动窗口绘制 鼠标点击坐标与绘制坐标 设备坐标和逻辑坐标
- 打印中,设备坐标与逻辑坐标转换
- 逻辑坐标与设备坐标相互转换的两个公式
- MFC 逻辑坐标原点与设备坐标原点的移动
- 设备坐标与逻辑坐标相互转换的两个函数
- 窗口坐标,逻辑坐标与视口坐标,设备坐标的区别
- windows程序设计中MM_TEXT模式下的逻辑坐标与设备坐标的转换
- GDI逻辑坐标与设备坐标
- windows 逻辑坐标与设备坐标
- 在状态栏中显示鼠标位置坐标
- 鼠标坐标的显示~
- VC的逻辑坐标和设备坐标
- 逻辑坐标和设备坐标的区别
- C#仿QQ皮肤-实现原理系列文章
- 一个电阻引发的惨案
- C++中bitset操作
- 源码下载
- 修复 恢复误删除
- 在状态条中显示鼠标的设备坐标与逻辑坐标
- again XMLHttpRequest
- Linux创建用户、用户组 及 删除
- pppd chat中文帮助
- Android 之 -- DRM(转)
- Debugging Perl
- sql递归
- WindML Driver for Mesa 4.0
- 引用类型实例