问题描述:
一个主对话框,里面一个tab控件,还有两个对话框(设置成没有标题栏)。主要想实现运行的时候,显示主对话框时,另外两个对话框作为tab里面显示!但是单拖动主对话框的时候出现问题了,如图片:请问一下如何把这三个对话框整合在一起,就是说拖动主对话框的时候,另外两个对话框也一起跟着主对话框一起移动!谢谢!
一个主对话框,里面一个tab控件,还有两个对话框(设置成没有标题栏)。主要想实现运行的时候,显示主对话框时,另外两个对话框作为tab里面显示!但是单拖动主对话框的时候出现问题了,如图片:请问一下如何把这三个对话框整合在一起,就是说拖动主对话框的时候,另外两个对话框也一起跟着主对话框一起移动!谢谢!
你在每个子对话框的属性里设置它的Style为Child即可
在每个tab页显示时将属于他的子对话框MoveWindow协调下他的位置就OK了
void ExpandTree(HTREEITEM hItem)
{
Expand(hItem, TVE_EXPAND);
HTREEITEM hChild = GetChildItem();
while (hChild)
{
ExpandTree(hChild);
hChild = GetNextItem(hChild);
}
}
此外如果想遍历树可以使用下面的函数:
HTREEITEM GetRootItem( );得到根结点。
HTREEITEM GetChildItem( HTREEITEM hItem );得到子结点。
HTREEITEM GetPrevSiblingItem/GetNextSiblingItem( HTREEITEM hItem );得到指明结点的上/下一个兄弟结点。
每一个节点都Expand
CTableCtrl m_nTableCtrl;
//若你有两个标签页
若你为子对话框创建了一个类的话假设为CSubTest1Dlg
创建子对话框对象CSubTest1Dlg m_nSubTest1Dlg;
m_nSubTest1Dlg.Create(子对话框的ID,&m_nTableCtrl);
另一个对话框也同上:
也可以用m_nSubTest1Dlg.SubclassDlgItem(子对话框的ID,,&m_nTableCtrl);
m_tab.InsertItem(0,"title1");
m_tab.InsertItem(1,"title2"); //建立属性页各页
CDialog1 page1;
CDialog2 page2;
page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1)); //设置页面的位置在m_tab控件范围内
CRect rs;
m_tab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4; page1.MoveWindow(rs);
page2.MoveWindow(rs); page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
默认显示第一个页面
m_tab.SetCurSel(0);