2010-02-18 6 views
0

Salut maintenant je travaille en 2003 vC++ et je suis en train de convertir (migrer) mon projet en vc 2008 ou nouveau vc 2010 Beta, j'ai vu la fonctionnalité pack de 2008,2010 concerne CDockable Pane (Auto Hode, flottant), donc j'ai besoin de cette fonctionnalités, je veux placer une boîte de dialogue ou une boîte de dialogue dans le volet (CDockable Pane class), donc je l'ai fait dans mon codeComment placer DialogBar ou boîte de dialogue dans le volet en vc 2008 ou vc 2010 Beta

extrait de code MyFrame est:

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); 
} 

quand je construis montre wont toute erreur et exécutée sans erreur dans la sortie du cadre montre la mypane mais mypane n'a pas montré IDD_DIALOG1

est-il donc quelque chose suis-je manqué s'il vous plaît corriger mon code et comment placer un DialogBox IDD_DIALOG1 pour mypane

S'IL VOUS PLAÎT HELP ME

REGARDS G.BALAJI

Répondre

1

La réponse courte est-il est très difficile de mettre un dialogue dans un CDockablePane (je sais comme je l'ai fait). Mais c'est très facile si vous utilisez un CPaneDialog à la place. Si vous convertissez une boîte de dialogue qui était précédemment dans un CDialog ou un CDialogBar, vous devez activer le drapeau "Visible" dans l'éditeur de dialogue. sinon, des choses étranges se produisent. (CDialog nécessitait que l'indicateur soit désactivé, mais CPaneDialog l'exige pour être activé.)

+0

Arrrrgh! Je viens de passer deux jours à essayer de faire fonctionner ça. Et tout ce qu'il a fallu, c'est de définir l'indicateur WS_VISIBLE dans les ressources de la boîte de dialogue. Merci pour votre solution! – Stefan

Questions connexes