要在父窗口里创建一个子窗口,
关键代码如下:m_child.Create(GetDlgItem(IDC_PARENT));问题是这样,创建子窗口之后,子窗口没能嵌到父窗口里,我拖动父窗口移动的时候,子窗口一动不动啊。
经过旧帖,答案为将子窗口的style设置为child。但是现在新的问题又来了,如果讲style设置为child,子窗口就显示不了了。
关键代码如下:m_child.Create(GetDlgItem(IDC_PARENT));问题是这样,创建子窗口之后,子窗口没能嵌到父窗口里,我拖动父窗口移动的时候,子窗口一动不动啊。
经过旧帖,答案为将子窗口的style设置为child。但是现在新的问题又来了,如果讲style设置为child,子窗口就显示不了了。
解决方案 »
- 过滤指定的IP地址
- 有关qq界面的一个问题?求救!
- 关于WM_QUIT,WM_CLOSE的小小问题
- 如何学习vc++?
- sdk与文件问题(请高手指点)
- ATL下怎么开辟多线程?
- 执行DOS命令的问题,请高手来看一下
- 請各位大蝦指教,我有一個很奇怪的問題(關於ATL開發的Service服務)!
- 我的硬盘怎么不能工作在DMA方式下了,2000SERVER...主硬盘怎么设置都是PIO,其他几个硬盘正常是DMA,BIOS自检时显示的是DMA66,也正却
- 使用CxImage图像库编译Debug版本成功,但是编译Release版本的时候编译不通过
- 菜鸟求助 mfc中如何打开一个文本文档并在static text中显示出来
- 帮忙看个错误
2、m_child.Create(子对话框ID,GetDlgItem(IDC_PARENT));
m_child.ShowWindow(SW_SHOW);//显示对话框
注意,此时要确保控件或窗口IDC_PARENT是可见的。
我当前的IDC_PARENT是一个tab控件。
如果把子窗口设置为child,则只显示父窗口,而不显示子窗口
有可能是你其他地方造成的呢
public CDialogImpl<CAccountSet>,
public CWinDataExchange<CAccountSet>
public CWinDataExchange<CAccountSet>
没看懂是什么意思?能再说的清楚一点吗?m_child的类为什么不直接继承自CDialog类啊?
比较之下,发现我现在的程序比demo多了一段代码,就是为了调整窗口位置而写的MoveWindow(),
可是如果我不写movewindow,就不能调整子对话框的位置,让它刚好显示在我的tab里面。
// 获得tab的客户区大小
RECT rs;
m_tab.GetClientRect(&rs); // 调整子窗口在父窗口中的位置
rs.left += 463;
rs.top += 213;
rs.right += 471;
rs.bottom += 193; //设置子对话框尺寸并移动到指定位置
m_child.MoveWindow(&rs);
m_tab.GetWindowRect(&rectTab);
ScreenToClient(&rectTab);
m_child.SetWindowPos(NULL,rectTab.left+5,rectTab.top+30,0,0,SWP_SHOWWINDOW|SWP_NOSIZE);
// 获得tab的客户区大小
RECT rs;
m_tab. GetWindowRect (&rs);
ScreenToClient(&rs); // 调整子窗口在父窗口中的位置
rs.left += 463;
rs.top += 213;
rs.right += 471;
rs.bottom += 193; //设置子对话框尺寸并移动到指定位置
m_child.MoveWindow(&rs);
MFC代码转到WTL是有些差别的,虽然不大,但还是有,WTL比MFC简单,MFC比WTL现成的多。