Ein Button von seiner Position aus nach oben, unten etc. bewegen ?
-
Hi,
ist es möglich ein Button von seiner Position aus ein Paar Zentimeter nach oben, unten, rechts oder links zu bewegen ?
Danke
Sean221
-
SetWindowPos
-
SetWindowPos erwartet aber als 2&3 Parameter eine neue x,y Position. Aber wenn ich z.B. den Button nur nach links bewegen will, dann muss ich ja nur die neue X-Position eingeben, y soll aber erhalten bleiben. Jetzt müsste ich dazu erstmal wissen wie ich die Y-Position von dem Button kriege ... um dann SetWindowPos benutzen zu können.
Also nochmal: Der Button soll von "seiner Position" aus beweget werden ...
Danke für jeden Tipp ...
Sean221
-
Evtl. mit:
GetItemPosition
SetItemPositionSchau mal in die MSDN da ist ein Beispiel. Hab ich selbst
aber auch noch nie benutzt
Wenns geht poste mal hier bitte deine Lösung.
-
Sorry, aber es gibt kein GetItemPosition die ein CWnd Handle zurückliefert ...
Schau selbst in der MSDN nach ..Sean221
-
schau dir mal die Funktion MoveWindow an!
-
Hallo Sean,
du musst erst mit GetWindowRect die aktuelle Position abfragen, dann mit ScreenToClient ins Koordinatensystem des Dialogs umrechnen, dann kannst du z.B. mit SetWindowPos den Button verschieben.
void CMyDlg::OnOK() { // Benutzer ärgern... CWnd *wndButton = GetDlgItem(IDOK); if (wndButton != NULL) { CRect rcButton; wndButton->GetWindowRect(&rcButton); ScreenToClient(&rcButton); wndButton->SetWindowPos(NULL, rcButton.left - 10, rcButton.top, 0, 0, SWP_NOZORDER | SWP_NOSIZE); } }
-
Echt super, Danke !!!!!! So klappts ...
Sean221