我在对话框上自定义画出了一个坐标系,放两个编辑框准备来实时反应鼠标在坐标中的值
想让鼠标只在坐标系内移动时,才在两个编辑框中显示鼠标的值(x和y轴坐标)
请问怎么办到?
想让鼠标只在坐标系内移动时,才在两个编辑框中显示鼠标的值(x和y轴坐标)
请问怎么办到?
解决方案 »
- Microsoft Visual Studio.Net(VS2010/2008)建的MFC工程好大,如何瘦身
- 坐标转换
- HOOK DLL被加载后,怎么从DLL中找到某个特定的进程?
- USB 分 主机型和网络型是什么含意?那位老兄进来给我普及一下?
- 简单问题,见者有分!!!!!!
- 哪位大虾有有关Socket编程方面的试题?
- 做一个对话框,然后再创建一个新的View(比如说CListView)。让他显示到对话框上
- 哪位老鸟给讲讲VirtualQueryEx族的函数 还有toolhelp32一族的函数
- 有谁编写过手机短信的程序?
- 关于opengl中生成mip图的问题
- RAS等设备信息的获取
- 求助:关于string::find和string::rfind问题
先DPTOLP然后PtInRect
先DPTOLP然后PtInRect"
-------------------------------
我是按SetMapMode SetWindowExtEx SetViewExtEx怎么设的
接下来呢?DPTOLP 和 PtInRect是什么?
DPTOLP然后PtInRect具体怎么用
pDC->SetWindowOrg(X0,Y0);
pDC->SetWindowExt(X,-Y);
pDC->SetViewportOrg(0,0);
pDC->SetViewportExt(rc.Width(),rc.Height());
我是这么设的。X0=-200 Y0=800
X=500 Y=1600
给点注释吗 看不懂
DPTOLP()参数用什么?
PtInRect呢
//这个区域大小由你自已来定void CDialog::OnMouseMove(UINT nFlags,CPoint point)
{
CString strText;
if(rect.PtInRect(point))
{
strText.Format("X:%d-Y:%d", point.x, point.y);
m_Edit.SetWindowText(strText);
}
}
CRect rect(0,0,150,1000);
if(rect.PtInRect(point))
{
strText.Format("X:%d-Y:%d", point.x, point.y);
edit4.SetWindowText(strText);
}这样还只是设备的物理坐标,
不能显示我自定义的逻辑坐标的大小我想知道DPTOLP()参数用什么
void DPtoLP( LPRECT lpRect ) const;
lpRect即你的坐标系的区域
它的作用是把rect指定区域内的设备坐标转化为你指定的逻辑坐标
CRect rect(0,0,150,3000);
DPtoLP(&rect);
if(rect.PtInRect(point))
{
strText.Format("%d", point.x);
edit4.SetWindowText(strText);
strText.Format("%d", point.y);
edit5.SetWindowText(strText);
}
提示:error C2660: 'DPtoLP' : function does not take 1 parameters
void DPtoLP( LPRECT lpRect ) const;
{} 《—函数里面怎么定义?
这个重载函数是CDC的类函数
比如你当前的dc是pDC
那要这样pDC.DPtoLP(&rect);