000
23.10.2006, 15:40 Uhr
-]Dr.LoLig[-
|
Moin! Also ich schreibe zuzeit eine Dialog-Anwendung und will bei dieser die Maximieren-Funktion hinzufügen. Mein Problem ist es nun, dass ich nicht weis wo ich die neuen Elemente hinzeichnen muss, da die Koordinaten die ich jeweils zurückkriege meiner Meinung nach net übereinstimmen(verschiedene Systeme). Mein Beispiel: vom Fenster mit GetWindowRect bekomme ich: top:155, bottom:584, left:145,right:879 nach ClientToScreen top:340, bottom:769, left:294,right:1028
so und nun will ich nen Button in der OnSize neuzeichnen: mit getclientrect bekomme ich: top:0, bottom:23, left:0,right:75 nach ClientToScreen top:185, bottom:208, left:149,right:224
Ich kann absolut keinen Zusammenhang sehen zwischen den Koordinaten vom Fenster und den von Button(Button ist unten Rechts im Fenster). Kann mir vielleicht einer sagen wo mein Denkfehler liegt?
Hier mal noch die OnSizing: void CTabctrlDlg::OnSizing(UINT fwSide, LPRECT pRect) { CDialog::OnSizing(fwSide, pRect);
CPoint CtrlRechtsUnten; CPoint ButtonRechtsUnten; CRect Zwischen=pRect;
CRect button; m_bOK.GetClientRect(button);
ClientToScreen(button); ClientToScreen(Zwischen);
CtrlRechtsUnten.x=(Zwischen.right -25); CtrlRechtsUnten.y=(Zwischen.bottom -25); ButtonRechtsUnten.x=(Zwischen.right -23); ButtonRechtsUnten.y=(Zwischen.bottom -75); m_tabctrl.MoveWindow(10,10,CtrlRechtsUnten.x,CtrlRechtsUnten.y,true); m_bOK.MoveWindow(150, 1002,button.Width(),button.Height(),true); //x,y sind frei gewählt, aber genau die brau ich
rein theoretisch müsste er doch auch wenn ich MoveWindow mit den alten Koordinaten füttere : m_bOK.MoveWindow(button.left, button.top, button.Width(),button.Height(),true);
den Button immer an der Ursprungsposition zeichnen? Er malt mir das Ding aber dann mitten in dialog ...
Bin echt am verzweifeln, weil ich schon allerlei Möglichkeiten durch hab mfg Mario Dieser Post wurde am 23.10.2006 um 15:41 Uhr von -]Dr.LoLig[- editiert. |