VC如何得到鼠标焦点所在的控件ID

 我来答
linux001
2012-10-21 · TA获得超过1401个赞
知道大有可为答主
回答量:1665
采纳率:100%
帮助的人:1358万
展开全部
楼上的,GetFocus看翻译返回的应该是键盘的焦点吧,具体未测试。
现提供一种方法获取当前鼠标所在位置的控件ID.
如下(Win32):
POINT pt;
GetCursorPos(&pt);
HWND hWnd = WindowFromPoint(pt);
ScreenToClinet(hWnd,&pt);
//得到窗体的控件句柄
HWND hControlWnd = ChildWindowFromPoint(hWnd,pt);
UINT uId=GetDlgCtrlID(hControlWnd);
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
aa...0@163.com
2012-10-22 · TA获得超过406个赞
知道答主
回答量:434
采纳率:0%
帮助的人:126万
展开全部
自己设定一个类内的成员变量usigned int OldID用于记录当前焦点控件的ID,等到下一个控件获得焦点的时候,OldID中的值就是前一个焦点的ID
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
intehel
推荐于2017-09-27 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1764万
展开全部
MFC::
CWnd *pWnd = GetFocus();
if(pWnd == NULL)
;//no focus
else
UINT nID = pWnd->GetDlgCtrlID();

SDK:
HWND hWnd = ::GetFocus();
if(hWnd == NULL)
;//no focus
else
UINT nID = ::GetDlgCtrlID(hWnd);

GetFocus: The return value is the handle to the window with the keyboard focus. If the calling thread's message queue does not have an associated window with the keyboard focus, the return value is NULL.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式