SetParent bei CEdit kommt Hintergrundfarbe "falsch"
-
Also folendes:
Ich habe mit dem Resourceneditor ein paar CEdit auf den Dialog geklatscht. Anschliessend habe ich auf den Dialog noch ein paar farbige Dialoge per Programm draufgeknallt (Damits schön bunt ist(Nein, Ich tausche diese Dialoge gegen nix anderes aus)). Dann habe ich die CEdit-felder mittels MoveWindow auf dem Bildschirm plaziert (mehr oder weniger eine Routine die die verschiedenen Bildschirmauflösungen berücksichtigt)Beim verschieben der CEdit-Felder sehe ich vorher nach, ob den die neue Position des CEdit auf einem farbigem CDialog sich befindet, Wenn nicht bleibt alles beim alten, wenn doch mache ich ein SetParent(newParent). Das ganze klappt auch einwandfrei, nur ist die Hintergrundfarbe des CEdit plötzlich in der Farbe des Dialoges und nicht mehr weiß. Es hilft auch kein Invalidate.
Kann mir einer sagen was ich falsch mache?
hier noch der code:
void CConsumerManager::MoveEditboxes(void) { CWnd *editBox; CDialog *parentWnd; CRect er,pr; int x,y; this->GetWindowRect(pr); er.left = 20; er.top = 110; er.right = pr.right /3; er.bottom = er.top +20; editBox = GetDlgItem(IDC_EDITLASTNAME); parentWnd = m_HelperClass->FindDialogByRect(er); editBox->MoveWindow(er); if (parentWnd) { editBox->SetParent(parentWnd); editBox->ModifyStyle(WS_POPUP,WS_CHILD,SWP_NOSIZE); } }