gpt4 book ai didi

c++ - 选项卡控件中的嵌入式对话框无法在第二个对话框中工作,MFC

转载 作者:行者123 更新时间:2023-11-28 07:22:27 25 4
gpt4 key购买 nike

我有以下代码可以在主对话框中工作,但不能在第二个(或第三个)对话框中工作。问题是我希望选项卡控件的每个页面都可以显示一个嵌入式对话框,它类似于属性页。

首先,我创建了两个对话框,IDD_DIALOG1IDD_DIALOG2。然后我将它们的样式更改为 child 并将边框更改为 None 。之后,我将 CDialog 类添加到它们中的每一个。

在我的 MainDialog.h 中,我有以下代码:

#include "Dialog1.h"
#include "Dialog2.h"
...
public:
CDialog1 m_para1;
CDialog2 m_para2;
CTabCtrl m_TabCtrl;

在我的 MainDialog.cpp 中,我使用以下代码将 dialo 嵌入到 OnInitDialog 中:

m_TabCtrl.InsertItem(0, _T("TAB1"));
m_TabCtrl.InsertItem(1, _T("TAB2"));
m_para1.Create(IDD_DIALOG1,GetDlgItem(IDD_MAINDIALOG));
m_para2.Create(IDD_DIALOG2,GetDlgItem(IDD_MAINDIALOG));

CRect rs;
m_TabCtrl.GetClientRect(&rs);

rs.top+=37;
rs.bottom+=8;
rs.left+=13;
rs.right+=7;

m_para1.MoveWindow(&rs);
m_para2.MoveWindow(&rs);

m_para1.ShowWindow(TRUE);
m_para2.ShowWindow(FALSE);


m_TabCtrl.SetCurSel(1);

通过使用这种方式,它可以在这种情况下工作。但是,如果我想在我的 SecondDialog(非主对话框)中使用此方法,它就无法工作。有人可以帮我吗?提前致谢。

最佳答案

当你创建一个无模式对话框时,试试这个:

m_para1.Create(IDD_DIALOG1,&m_TabCtrl);
m_para2.Create(IDD_DIALOG2,&m_TabCtrl);

Create 函数的第二个参数是指向对话框对象所属的父窗口对象(CWnd 类型)的指针。 GetDlgItem 函数的返回类型是 HWND

见下文: http://msdn.microsoft.com/en-us/library/tc46f3be.aspx
http://msdn.microsoft.com/en-us/library/kc6x1ya0.aspx

关于c++ - 选项卡控件中的嵌入式对话框无法在第二个对话框中工作,MFC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19216029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com