控件的Tab顺序GetWindow的关系————————————————————————————————作者:————————————————————————————————日期: 控件的Tab顺序与GetWindow的关系概述:很多情况下,我们需要获取某个特定对话框上面的控件的一些信息,如何仅仅知道了对话框窗口指针,如何利用GetWindow得到其子控件的指针呢?对话框上面的控件的Tab顺序和GetWindow之间的关系是如何的呢?通过研究得出结论:窗口之间存在着父子关系,兄弟关系,那么一个对话框上的控件之间构成了兄弟关系,那究竟哪个控件是长兄,次兄呢?研究方法:通过输出控件的标题来判断我们利用GetWindow获取的控件的先后关系,代码如下:voidCTestDlg::OnButton1(){ CWnd*pWnd=GetWindow(GW_CHILD); while(pWnd) { CStringstrTxt; pWnd->GetWindowText(strTxt); TRACE1("\n%s\n",strTxt); pWnd=pWnd->GetWindow(GW_HWNDNEXT); }}对话框Tab顺序如下:输出结果为:其中:Button1就是Tab顺序为1的按钮的文本;Check1是Tab为2的复选框的文本 edit1是Tab顺序为3的编辑框的文本; edit2是Tab顺序为4的编辑框的文本; Check2是Tab顺序为5的复选框的文本;当我们改变对话框各控件的Tab顺序值时,会发现输出的内容会相应发生改变,例如:则输出的内容如下:结论:控件的Tab顺序决定了控件之间的前驱后继关系,如下图:对话框指针Tab1控件Tab2控件Tab3控件Tab4控件……长兄次长兄次次长兄次次次长兄说明:Tab为1的控件,就是大儿子,即长兄,Tab为2的控件为次长兄,以此类推。
控件的Tab顺序GetWindow的关系 来自淘豆网www.taodocs.com转载请标明出处.