【问题标题】:How to instanciate same dialog in MFC C++?如何在 MFC C++ 中实例化相同的对话框?
【发布时间】:2012-07-25 18:05:25
【问题描述】:

我想构建一个 MFC 对话框,在其中添加一个简单的TabControl。我希望我的标签页是相同 CDialog 的实例,但具有一些不同的参数(例如显示哪些按钮)。

我正在使用 Visual Studio 2008。

我对 C++ 比较陌生,但我看到每个组件(CButton、CDialog)都有自己的 ID(这是静态的,所以我理论上不能实例化同一个组件两次)。

我想知道如何做这样的事情:

for (index = 0 to tabNumber) {
  name = "TAB"+index;
  tabCtrl.add(new CustomDialog(name, i));
}

【问题讨论】:

  • 实际上创建同一个对话框可以根据需要多次。控件 ID 始终参考父对话框窗口,因此没有冲突。

标签: visual-c++ mfc dialog tabcontrol


【解决方案1】:

您必须在创建项目时提供不同的 TabID。

OnInitDialog()

{
m_cTab.Init();

m_cTab.InsertItem(0,"Register new user");//tabID=0
m_cTab.InsertItem(1,"Identify");// TabID=1

//注册新用户 m_cTab.CreateButton("加载图片",23,TabID=0, 0, m_cTab.RightOf(22)+15, m_cTab.TopOf(19),60); //确认 m_cTab.CreateButton("注册用户",24,TabID=1,P_LEFT,0, m_cTab.TopOf(20) ,60);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    相关资源
    最近更新 更多