Button move wird nicht angezeigt
-
Zu meinen Problem ich habe in der WndProc unter WM_CREATE mehrere Button erstellt und die Wert als die Id und den Handle in einen Vector gespeichert.
Wie Button sind so angeordnet:ErsteInst ZweiteInst DritteInst DritteInst ErsteInst ZweiteInst DritteInst ZweiteInst
Wenn ich jetzt z.B. auf ZweiteInst drücke Speiche ich das alle Button die nach diesen kommen nicht mehr angezeigt werden.
ErsteInst ZweiteInst<-- Wird gedrückt DritteInst DritteInst ErsteInst ZweiteInst DritteInst ZweiteInst
ErsteInst ZweiteInst ErsteInst ZweiteInst DritteInst ZweiteInst
Jetzt hab ich aber 2 Leerzeilen die weg sollen.
Also habe ich in der WM_COMMAND am Ende noch das hier eingefügt:SendMessage(hWnd, WM_PAINT, wParam, lParam);
Um in der WM_PAINT das hier:
for (auto& buttonList : buttons) { for (auto& button : buttonList) { RECT buttonScreenRect; GetWindowRect(button.handle, &buttonScreenRect); POINT buttonClientPoint; buttonClientPoint.x = buttonScreenRect.left; buttonClientPoint.y = buttonScreenRect.top; ScreenToClient(button.handle, &buttonClientPoint); MoveWindow(button.handle, buttonClientPoint.x, currendHeight , buttonScreenRect.right - buttonScreenRect.left, buttonScreenRect.bottom - buttonScreenRect.top, false); currendHeight += 20; } }
Jetzt wird mir aber ohne das ich überhaupt was gedrückt habe das hier angezeigt:
ErsteInst ZweiteInst DritteInst DritteInst ErsteInst ZweiteInst DritteInst ZweiteInst
Also die Formatierung ist komplett weg und wenn ich auf Button drück sieht das fast so aus es eingefroren ist also ich kann meine Button mehr drücken mit Ausnahme der System Menü Button.
Weiß jemand was ich falsch mache?
Kann ich das ganze eigentlich auch ohne globale Variablen oder static machen?Falls noch Fragen sind bitte Melden.
-
EDIT: Das alles eingefroren ist lag daran das ich currendHeight nicht wieder auf 0 gesetzt hab.
Jetzt hab ich wieder die zwei Leerzeilen aber das ganze wird irgendwie nicht neu gezeichnet wie mache ich das?
-
OK hat sich schon erledigt. Der ganze Code war müll