c++ - 如何在 vc 2008 或 vc 2010 Beta 中将对话框栏或对话框放入 Pane

标签 c++ visual-c++ mfc mfc-feature-pack

你好,现在我在 2003 vc++ 工作,我正在将我的项目转换(迁移)到 vc 2008 或新的 vc 2010 Beta,我看到 2008、2010 的功能包关于 CDockable Pane(Auto Hode, float ),所以我需要此功能,我想将对话框或对话框栏放入 Pane (CDockable Pane 类),所以我在下面的代码中完成了此操作

Myframe 代码片段是:

if (!m_MyPane.Create(L"MyPane", this, CRect(0,0,0,0), true, IDD_DIALOG1, WS_CHILD|WS_VISIBLE))
    return -1;
 AddDockSite();
 EnableDocking(CBRS_ALIGN_ANY);
 EnableAutoHidePanes(CBRS_ALIGN_ANY);
 m_MyPane.EnableDocking(CBRS_ALIGN_ANY);
 DockPane(&m_MyPane, AFX_IDW_DOCKBAR_RIGHT);

MyPane class Definition is :

#include "stdafx.h"

#include "Pane.h"
#include "Resource.h"
#include "MainFrm.h"
#include "soft1.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CPane1::CPane1()
{
}
CPane1::~CPane1()
{

}

BEGIN_MESSAGE_MAP(CPane1, CDockablePane)
 ON_WM_CREATE()
 ON_WM_SIZE()
END_MESSAGE_MAP()

int CPane1::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CDockablePane::OnCreate(lpCreateStruct) == -1)
  return -1;

 return 0;
}

void CPane1::OnSize(UINT nType, int cx, int cy)
{
 CDockablePane::OnSize(nType, cx, cy);
}

当我构建它时,它不会显示任何错误并且在输出中没有错误地执行框架显示 mypane 但 mypane 没有显示 IDD_DIALOG1

所以我错过了什么请纠正我的代码以及如何将 IDD_DIALOG1 对话框放入 mypane

请帮帮我

问候 G.巴拉吉

最佳答案

简短的回答是很难在 CDockablePane 中放置一个对话框(我知道我已经做到了)。但是如果您改用 CPaneDialog 就很容易了。如果您正在转换以前位于 CDialog 或 CDialogBar 中的对话框,您需要在对话框编辑器中打开“可见”标志。否则会发生一些奇怪的事情。 (CDialog 要求标志关闭,但 CPaneDialog 要求它打开。)

关于c++ - 如何在 vc 2008 或 vc 2010 Beta 中将对话框栏或对话框放入 Pane ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286548/

相关文章:

c++ - condition_variable::wait_for 和 wait_until 使用 chrono::steady_clock 但在 PC sleep 时跳过持续时间?

C++:定义类的最大/最小限制

c++ - 如何使用 Strtok 对 Const char* 进行标记?

c# - 程序集Microsoft.VC90.CRT问题

c++ - 如何使用 MFC/C++ 进行 HTTP 传输?

c++ - 体系结构 x86_64 vtable 的 undefined symbol

c++ - WinAPI 单击按钮时没有任何反应

c++ - 在没有管理员权限的情况下获取主域 SID

c++ - MFC - 如何在运行时更新编辑框? (C++)

C++ MFC : Debug Assertion error when trying to call method using instance of a class