Как поместить DialogBar или диалоговое окно на панель в vc 2008 или vc 2010 Beta - PullRequest
0 голосов
/ 18 февраля 2010

Привет, сейчас я работаю в 2003 vc ++, и я конвертирую (переносю) свой проект в vc 2008 или новую бета-версию vc 2010, я увидел пакет функций 2008,2010 в отношении панели CDockable (Auto Hode, плавающий), поэтому мне нужны эти функции, я хочу поместить диалоговое окно или диалоговую панель в панель (класс 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

ПОЖАЛУЙСТА, ПОМОГИТЕ МНЕ

REGARDS G.BALAJI

1 Ответ

2 голосов
/ 22 февраля 2010

Короткий ответ: очень сложно поместить диалог в CDockablePane (я знаю, что сделал это). Но это очень легко, если вы используете вместо этого CPaneDialog. Если вы конвертируете диалог, который был ранее в CDialog или CDialogBar, вам необходимо включить флаг «Visible» в редакторе диалогов. в противном случае происходят некоторые странные вещи. (CDialog требует, чтобы флаг был выключен, но CPaneDialog требует, чтобы он был включен.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...