您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> CDialog对话框中CCombox元素的GetFocus返回的ID始终是1001,好奇怪

CDialog对话框中CCombox元素的GetFocus返回的ID始终是1001,好奇怪

来源:网络整理     时间:2016/7/18 4:08:04     关键词:

关于网友提出的“ CDialog对话框中CCombox元素的GetFocus返回的ID始终是1001,好奇怪”问题疑问,本网通过在网上对“ CDialog对话框中CCombox元素的GetFocus返回的ID始终是1001,好奇怪”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: CDialog对话框中CCombox元素的GetFocus返回的ID始终是1001,好奇怪
描述:

我在改一个程序,动态修改一个对话框界面上元素的位置,自然Tab Order的顺序也要做动态改动,我就要用GetFocus()来判断当前焦点的位置,可是我发现焦点在编辑框和按钮上时没有问题,一旦焦点在CCombox框上,GetFocus()的返回就有问题,用 UINT nCurrentItem = GetFocus()->GetDlgCtrlID();返回的值始终是1001,我的界面上有两个CCombox,两个的返回值都是1001,实际上一个是113,一个是114。GetFocus()的返回是什么TmpWnd,实在是搞不懂?
可以提供什么线索吗?或者有什么办法在程序里动态调整Tab Order?


解决方案1:

A combo box consists of a list box combined with either a static control or edit control.
GetFocus返回的是combo box中的Edit的CWnd指针。
修改你的程序的最后一句,
pWnd = GetFocus()->GetParent();
你就会发现pWnd和pWnd1相同了。
另外,
UINT nCurrentItem = GetFocus()->GetParent()->GetDlgCtrlID();
这一句可以得到combo box的ID。

解决方案2:

CCombox本身也是组合的,返回的应该是它里面的Edit的ID,所以是一样的。
如果想调整的话,直接根据CtrlID索引好了


以上介绍了“ CDialog对话框中CCombox元素的GetFocus返回的ID始终是1001,好奇怪”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2761703.html

相关图片

相关文章