【问题标题】:Add a toolbar to a CDialog Window将工具栏添加到 CDialog 窗口
【发布时间】:2012-12-21 20:34:45
【问题描述】:

我创建了一个 SDI 应用程序并创建了一个对话窗口。我想在该对话框中添加一个工具栏,所以我这样编码:

int CAddNewEmployee::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CDialog::OnCreate(lpCreateStruct) == -1)
      return -1;

   CToolBar cToolBar;
   cToolBar.Create(this);
   cToolBar.LoadToolBar(IDR_MAINFRAME1);
   cToolBar.ShowWindow(SW_SHOW);
   cToolBar.SetBarStyle(CBRS_ALIGN_TOP | CBRS_TOOLTIPS | CBRS_FLYBY);
   RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

   return 0;

}

但是当我运行应用程序时,没有任何反应,没有显示工具栏。我不知道代码是否正确以及如何显示。

谢谢。

【问题讨论】:

    标签: visual-c++ mfc


    【解决方案1】:

    您的工具栏在函数结束时被销毁,因为您将其设置为局部变量。改为将其设为成员变量。

    参考: How to add control bars to dialog boxes in MFC

    【讨论】:

    • 谢谢,我没有想过这样的 Trace。
    • 有新链接吗?这个现在是 404。
    • @AndrewTruckle,已经有一段时间了,确实忘记了该教程的真正内容,但根据我在问题中的示例,我必须添加我在类中声明的控件,以免最后被销毁的功能。您可以查看此链接jeffpar.github.io/kbarchive/kb/141/Q141751 (Adding Control Bars to Dialog Boxes in MFC)
    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多