Dialog ohne Titelleiste bewegen??
-
Hallo mal wieder
Mal ne frage wie kann ich einen Dialog der keine Titelleiste hat (aber ein Menü) beweglich machen? Sprich wenn man mit der Maus auf den Dialog clickt soll man das Fenster (dialog) an eine andere stelle schieben können?
Ach ja und dann noch eine Frage. Gibt es eine Funktion mit der der user bei Auswahl eines Menüpunktes das Menü nicht mehr sichtbar ist und wenn der user dann doppelt auf den Dialog clickt soll es wieder sichtbar sein?
Danke euch schon mal.
MfG Nico
-
zu 1:
Schau mal auf www.c-pp.de unter Tipps oder so ...
-
Ich hab das mal so gemacht, ob dir das hilft weiß ich nicht...
Es werden einfach alle Einträge eines Menüs entferntHMENU menu = GetSystemMenu (hwnd, 0); RemoveMenu (menu,6, MF_BYPOSITION); RemoveMenu (menu,5, MF_BYPOSITION); RemoveMenu (menu,4, MF_BYPOSITION); RemoveMenu (menu,3, MF_BYPOSITION); RemoveMenu (menu,2, MF_BYPOSITION); RemoveMenu (menu,1, MF_BYPOSITION); RemoveMenu (menu,0, MF_BYPOSITION); ::RedrawWindow (hwnd, NULL, NULL, NULL);
-
Es gibt ne Funktion im Dialog die heisst glaube ich LBUTTONDOWN
najaund wenn du da folgendes einträgst, dann hast du die Prob beseitigt!
ReleaseCapture(); SendMessage(WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
-
@DeltaPi
Das funktioniert zwar, ist aber ungefähr wie von Berlin über Frankfurt nach Hamburg zu fahrenBesser ist, WM_NCHITTEST abzufangen und HTCAPTION zurückzugeben
-
hmm, wie meinst das meinst es geht noch leichter als zwei zeilen?
-
Ja, eine Zeile...
UINT CMyDlg::OnNcHitTest(CPoint point) { return HTCAPTION };
-
Zu deiner Frage mit dem Menü:
Füge ein Popup-Menü zu deinem Dialog hinzu. Wenn du nicht weisst wie das geht benutze einfach die Component-Gallery von VisualStudio. Den Code zum aufrufen kopierst du dann einfach in die WM_LBUTTONDBLCLICK-Funktion deines Dialoges.
-
Super ich danke euch erst mal allen für die Hilfe und werde das gleich mal testen. Ich melde mich wenn es probs geben sollte noch mal.
MfG Nico