永发信息网

MFC中,我能过GetCursorPos()来获取鼠标当前的屏幕坐标,但是我想获取当前窗口的坐标。

答案:3  悬赏:60  手机版
解决时间 2021-03-25 10:41
MFC中,我能过GetCursorPos()来获取鼠标当前的屏幕坐标,但是我想获取当前窗口的坐标。
最佳答案
有现成的ScreenToClient函数,你可以百度搜一下。

例:
void CTest25Dlg::OnButton1()
{
CRect r(0,0,100,100);
CPoint pt(0,0);
ScreenToClient(&r);
ScreenToClient(&pt);
}
执行下面的两行后,r,pt的值变成了相对对话框左上角的值追问嗯,谢谢了,有才!就是要这样转换的。
全部回答
如果是本身程序,把你取的坐标减去窗体的left和top值即可
如果是别的程序的,得需要得到窗体的HWND,然后就能得到窗体的left和top值,原理同上追问嗯,说的很对。我改了,还是不太对,你说的别的程序是什么意思?追答就是操作别的软件啊,比如qq啦,浏览器啦等等
因为你使用的这个函数并没有在窗口中定义,要实现这个功能的话你只只有通过一个消息,那就是添加消息WM_NCHITTEST .得到如下的代码。
UINT CServerAddrDlg::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default

return CDialog::OnNcHitTest(point);
}
void CServerAddrDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog::OnActivate(nState, pWndOther, bMinimized);

// TODO: Add your message handler code here

}
OnNcHitTest函数中的point就是你需要的点的坐标了。还有就是一个全局的API函数,我记得不清了,因为我做的时候都是用这个方法。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
速录多长时间能学成?
麻辣香锅饭店版怎么做
二米四衣柜草图
单选题It'sdifficult________us________.
贵州皓天光电会做LED照明成品吗?
圆度和不圆度的区别
怎么用PS做出扎染的效果
现在宁波火车站去宁波二院坐什么公交比较快
山东易秀文化传媒有限公司怎么样?
没有生就不会有死吗?
“德”字少一横,是什么繁体字?
HV- 6X2PI R6104 双向高压二极管不用能工作吗
贵定县德新镇新场中学地址在什么地方,我要处
急需穿越之代嫁公主全文加番外,一定要完整
我们英语社要为晚会出一个节目,可以推荐一下
推荐资讯
天逸AD2se和声雅A25功放那个好
今天上高速,发现车速在120以上抖动很厉害,
求问有谁用小八玩起过剑网3和九阴真经么
我要做一份以未来 为话题的英语手抄报,题目
就这款三星曲屏电视,不确定什么型号就知道65
如果你的家人想去三峡旅游 你认为什么时候去
请问我换了个华硕主板,然后开机就是这种情况
下列各种现象中,与大气压强无关的是A.用抽水
我想和在韩国的朋友玩暗黑2 我在淘宝买台服cd
请问北辰那片那个农村比较富裕?
几字加一笔是什么字
叔卤代烷与醇钠反应方程式
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?