View im Dialog

kerian

Erfahrenes Mitglied
Hallo,
wie kann es hinbekommen ,das wenn ich den Dialog in der Größe ändere die
View neu angepasst wird.
Wenn ich in der Methode size() die OnInitDialog() Methode einfüge , funktioniert das ganze ncht :(

Die View wird in dem Dialog mit diesem Code erzeugt!

BOOL CGR2dialog::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Zusätzliche Initialisierung hier einfügen

CCreateContext pContext;
/**
* Note:CDialig derived pointer is converted to
* CWnd pointer (a common base class for CDialog and CFrameWnd).
* Thus casting it back to CFrameWnd is also easy.
*/
CWnd* pFrameWnd = this;

//pContext.m_pCurrentDoc = new CGR2Doc;
pContext.m_pNewViewClass = RUNTIME_CLASS(CGR2gr2view);
CGR2gr2view *pView = (CGR2gr2view *) ((CFrameWnd*)pFrameWnd)->CreateView(&pContext);
ASSERT(pView);
pView->ShowWindow(SW_NORMAL);
pView->OnInitialUpdate();

/**
* After a view is created, resize that to
* have the same size as the dialog.
*/
CRect rectWindow;
//GetWindowRect(rectWindow);
GetClientRect(rectWindow);
/**
* Leave a little space for border and title...
*/
rectWindow.right += 0;
rectWindow.top -= 0;
pView->MoveWindow(rectWindow);

//CString str(AfxGetApp()->m_lpCmdLine);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
}
 
Die View wird im Dialog angezeigt, das funktioniert.
Wenn ich die Eigenschaft des Dialoges (Größe ändern) aktiviere, kann ich die Größe des Dialoges mit der Maus ändern. Die View wird aber der neuen Größe des Dialoges nicht angepasst. :(
 
Die Grösse musst du in OnSize() des Dialoges anpassen, wenn ich mich recht erinnere, nicht unbedingt in OnInitDialog(). OnSIze() (für WM_SIZE) wird beim Resizen aufgerufen. Hat aber einen Haken: Beim ersten Aufruf, wenn der Dialog erzeugt wird, sind die Controls noch nicht initialisiert. Da musst du aufpassen.
Hoffe, das hilft - aber ohne Gewähr, da ich das seit einer Weile nicht mehr gemacht habe.
 
Zurück