Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Absturz bei Setwindowpos

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.08.2002, 17:05 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!

Ich hab einen CDialogBar und möchte in CXXView::OnSize seine Größe ändern.

C++:
CMainFrame* pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CDialogBar* pBar = &pMain->m_wndDialogBar;
m_wndDialogBar->SetWindowPos(&wndTop,0,0,150,300,SWP_SHOWWINDOW);



Warum stürtzt das Programm dabei ab??

Danke x <unendlich>

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2002, 17:37 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Mike,
hab ich zwar noch nie probiert, aber wenn Dein Bar "docked" ist, sollen alle Versuche fehlschlagen.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.08.2002, 20:00 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Hab mich schon gefreut, endlich ein Docking Window selbst gemacht zu haben und dann das ;D

Trotzdem danke!

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.08.2002, 20:06 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Mike,

Zitat:
mike postete


C++:
CMainFrame* pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CDialogBar* pBar = &pMain->m_wndDialogBar;
m_wndDialogBar->SetWindowPos(&wndTop,0,0,150,300,SWP_SHOWWINDOW);




Habe jetzt ohne den Compiler zu bemühen nochmals darüber nachgedacht. So wie das da oben steht, kann das nicht funktionieren. Was geht ist : du erstellst für deinen Dialogbar eine neue Klasse (MyBar,CDialogBar)
Dann kannst Du mit:

C++:
             CMainFrame* pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    MyBar* pBar = &pMain->m_wndDialogBar;
    pBar->SetWindowPos(&wndTop,0,0,150,300,SWP_SHOWWINDOW);

jeden Unfug damit machen.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.08.2002, 20:44 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Hat leider auch nicht funktioniert. Hab das Programm deguggt. Er ist zu ::IsWindow(...) von SetWindowPos gesprungen. Hab mir dann die "Window Access Functions" von CWnd angeschaut. Hab aber NULL Ahnung, welche ich da nehmen soll. Könnte es vielleicht damit funktionieren??

Danke nochmals..
mfg mike
PS:

C++:
So hab ich ihn erstellt:
m_wndMyBar.Create(this, IDD_DIALOG1, WS_VISIBLE|WS_CHILD|CBRS_LEFT, 1);
m_wndMyBar.EnableDocking(CBRS_ALIGN_RIGHT|CBRS_ALIGN_LEFT);
DockControlBar(&m_wndMyBar);


--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.08.2002, 13:43 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich habs jetzt geschafft, dass Fenster zu "vergrössern".


C++:
void CDockingView::OnSize(UINT nType, int cx, int cy)
{
    CView::OnSize(nType, cx, cy);
    
    CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;
    
    if(pMain)
    {
        WINDOWPLACEMENT wndpl;

        CRect rect;
        
        rect.left = 0;
        rect.top = 0;
        rect.right = 450;
        rect.bottom = 800;
        
        wndpl.length = sizeof(WINDOWPLACEMENT);
        wndpl.flags = SW_SHOWMAXIMIZED;
        wndpl.ptMinPosition = CPoint(0,0);
        wndpl.ptMaxPosition = CPoint(0,0);
        wndpl.rcNormalPosition = rect;

        pMain->m_wndDialogBar.SetWindowPlacement(&wndpl);
    }    
}



Man sieht, dass der Gripper und das Fenster vergrößert werden und auch wenn man es per Drag&Drop vom Docking in den ClientBereich zieht, ist dass graue Recteck auch richtig. Nur im "Docking-Modus" ist halt nur mehr der Gripper richtig und die Größe des Dialobars entspricht der der Ressource Datei.

Was ist da falsch???

Danke x <unendlich>

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: