Dialog Rahmen Größe ändern
-
Hallo
Mein Dialog lässt sich in der Größe ändern. In den Eigenschaften habe ich hierzu auf Rahmen -> Größe ändern eingestellt. Die Controlls programmatisch angepasst. Was mir aber fehlt ist dass in der unteren Ecke gekennzeichnet wird dass sich der Dialog ändern lässt. Manche Programme zeigen dazu Punkte an andere wiederum Striche. Wie geht das in MFC?
-
Das ist ein Scrollbar Control mit SBS_SIZEGRIP
http://msdn.microsoft.com/en-us/library/bb787533(VS.85).aspx
-
Ok werde ich mal testen. Habe nun auch bereits eine andere Lösung gefunden. Wenn man eine Statusleiste (CStatusBarCtrl) hinzufügt wird die Kennzeichnung auch angezeigt.
-
benuutzer schrieb:
Ok werde ich mal testen. Habe nun auch bereits eine andere Lösung gefunden. Wenn man eine Statusleiste (CStatusBarCtrl) hinzufügt wird die Kennzeichnung auch angezeigt.
Jupp!
Aber wenn Du jetzt eine Status Zeile in Deinen Dialog baust und auch noch den Dialog sizable machst, warum nimmst Du kein CFormView und baust eine SDI Applikation?
-
Nochmal zu erstem Beitrag: Irgendwie klappt das mit der Scrollbar nicht weder der Grip noch die Scrollbar werden angezeigt.
Zu:
warum nimmst Du kein CFormView und baust eine SDI Applikation?
Weil ich nicht wußte das es so was gibt. Muss ich mal anschauen. Aber eigentlich brauche ich gar keine Statusleiste. Aber wie schon erwähnt die Scrollbar bringe ich irgendwie nicht angezeigt. Code:
CControlBar m_controlbar; m_controlbar.Cretae(SBS_SIZEGRIP ,CRect(0, 0, 0, 0), this, 0);
-
Und wie soll das gehen? Du hast ja weder die korrekte Größe noch die Position definiert.
Größe kann man bem Create mt angeben:
m_sizeGrip.cx = GetSystemMetrics(SM_CXVSCROLL); m_sizeGrip.cy = GetSystemMetrics(SM_CYHSCROLL);Position:
GetClientRect(&rect); rect.left = rect.right - m_sizeGrip.cx; rect.top = rect.bottom - m_sizeGrip.cy; // must stay below other children m_wndGrip.SetWindowPos(&CWnd::wndBottom, rect.left, rect.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOREPOSITION);
-
oh natürlich nicht: CControlBar sondern CScrollBar.
was ist m_sizeGrip und was m_wndGrip. Und wie muss dann mein Create aussehen?
-
So sieht nun mein Code aus
CRect rect; GetClientRect(rect); int x = GetSystemMetrics(SM_CXVSCROLL); int y = GetSystemMetrics(SM_CYHSCROLL); rect.left = rect.right -x; rect.top = rect.bottom -y; m_scrollbar.Create(SBS_SIZEGRIP,rect,this,0); m_scrollbar.SetWindowPos(&CWnd::wndBottom, rect.left, rect.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOREPOSITION);und es tut sich immer noch nichts
-
Schon mal was von WS_VISIBLE gehört? Oder ShowWindow?
Wie wäre es wenn Du Dich einfach als Anfänger auch etwas mit Windows Grundlagen beschäftigst.
Ansonsten nimm den Spy++ und kontrolliere wo Dein Fenster liegt.
-
Achso. Was ist ein "enster"
-
[F]enster
-
Achso SDI. Ganz vergessen. Wie schaffe ich es aber dass ich nur eine Dokument habe und darauf auch noch Controlls anordnen kann. Alles Programmatisch?
-
Die Frageist mir nicht klar?
1. Neu ein Dokument? SDI heißt Single-Document-Interface
2. Im CFormView kannst Du jederzeit Deine Control in OnInitialUpdate dynmaisch erzeugen. Das geht genauso wie im Dialog.
-
1. Ups klar SDI. Nicht MDI.
2. Ja aber ich kann keine Controlls Grfisch mit VS anordnen oder?
-
zu 2. natürlich mit dem Recourceneditor
-
ja aber nicht mit der Toolbox oder?