Dialogfenster rechts positionieren.
-
Wie kann ich mein Dialogfenster, unabhängig von der Aaflösung, nach ganz rechts positionieren ?
Nach links geht ja so:
/////Benötigt für Fenster Positionierung CRect myRect, desktop; GetDesktopWindow()->GetWindowRect(&desktop); GetWindowRect(&myRect); MoveWindow(0, (desktop.Height()/2) - (myRect.Height()/2), myRect.Width(), myRect.Height());Danke für eure Hilfe.
-
hmm
also wenn du dich mit SetWindowPlacement anfreunden könntest dann hätte ich da was für dich hab mir sowas mal gebastelt. allerdings hab ich das jeweils auf die hälft des bildschirms zugeschnitten. Sprich dir zieht es die anwendung größer bzw. kleiner je nachdem. aber sie sollte schnell umgeschrieben sein.der dialog läst sich damit zur laufzeit des programms über den bildschirm schieben
defines kommen in die header
#define SHOW_MAXIMIZED 0 #define SHOW_WINDOWHALF_LEFT 1 #define SHOW_WINDOWHALF_RIGHT 2 #define SHOW_WINDOWHALF_TOP 3 #define SHOW_WINDOWHALF_BOTTOM 4 #define SHOW_WINDOWHALF_TOPLEFT 5 #define SHOW_WINDOWHALF_TOPRIGHT 6 #define SHOW_WINDOWHALF_BOTTOMLEFT 7 #define SHOW_WINDOWHALF_BOTTOMRIGHT 8dann erstell dir ne funktion die du per Button oder aus der OnInit oder so ansprichts dort schreibste folgenden code rein
WINDOWPLACEMENT wp; GetWorkingArray(&wp,SHOW_WINDOWHALF_TOPRIGHT); SetWindowPlacement(&wp);erstell dir dann die funktion
void GetWorkingArray(WINDOWPLACEMENT *wp, UINT uiShow)dort kommt dann folgender code rein
CRect WorkArrayRect; ////////////////////////////////////////////// //Ermitle Bildschirmgröße abzüglich Taskleiste SystemParametersInfo(SPI_GETWORKAREA,0,&WorkArrayRect,0); int nBottom=0,nTop=0,nLeft=0,nRight=0; nBottom = WorkArrayRect.bottom; nTop = WorkArrayRect.top; nLeft = WorkArrayRect.left; nRight = WorkArrayRect.right; switch(uiShow) { case SHOW_MAXIMIZED: nBottom = WorkArrayRect.bottom; nTop = WorkArrayRect.top; nLeft = WorkArrayRect.left; nRight = WorkArrayRect.right; break; case SHOW_WINDOWHALF_LEFT: nRight = WorkArrayRect.right-(WorkArrayRect.right/2); break; case SHOW_WINDOWHALF_RIGHT: nLeft = WorkArrayRect.left+(WorkArrayRect.right/2); break; case SHOW_WINDOWHALF_BOTTOM: nTop = WorkArrayRect.top+(WorkArrayRect.bottom/2); break; case SHOW_WINDOWHALF_TOP: nBottom = WorkArrayRect.bottom-(WorkArrayRect.bottom/2); break; case SHOW_WINDOWHALF_TOPLEFT: nBottom = WorkArrayRect.bottom-(WorkArrayRect.bottom/2); nRight = WorkArrayRect.right-(WorkArrayRect.right/2); break; case SHOW_WINDOWHALF_TOPRIGHT: nBottom = WorkArrayRect.bottom-(WorkArrayRect.bottom/2); nLeft = WorkArrayRect.left+(WorkArrayRect.right/2); break; case SHOW_WINDOWHALF_BOTTOMLEFT: nTop = WorkArrayRect.top+(WorkArrayRect.bottom/2); nRight = WorkArrayRect.right-(WorkArrayRect.right/2); break; case SHOW_WINDOWHALF_BOTTOMRIGHT: nTop = WorkArrayRect.top+(WorkArrayRect.bottom/2); nLeft = WorkArrayRect.left+(WorkArrayRect.right/2); break; } wp->rcNormalPosition.bottom = nBottom; wp->rcNormalPosition.top = nTop; wp->rcNormalPosition.left = nLeft; wp->rcNormalPosition.right = nRight; wp->showCmd = SW_SHOW;viel spaß damit
mfg
LowFly
-
danke. schau ich mir mal an

-
Such mal im MSDN nach GetSystemMetric (Platform SDK).
... GetSystemMetrics(SM_CXSCREEN); GetSystemMetrics(SM_CYSCREEN); ...