Funktion um Fenster zu verschieben.
-
Hallo
Ich suche eine Funktion um ein Fenster zu verschieben.
Der Code sieht bis jetzt so aus#include<iostream>
#include<windows.h>
using namespace std;int main()
{
MessageBox(0,"Hi", "Hi", 0);
}Diese Messagebox soll jetzt verschoben werden auf eine Position die ich bestimmen kann
Wie muss ich das machen?
-
Ich sehe keine andere Möglichkeit als dir einen eigenen MessageBox-Dialog zu erstellen, denn du kannst dich nicht ohne weiteres in die DlgProc der MessageBox einklinken, denn nur dort hast du die Möglichkeit, die Position zu verändern.
-
CreateThread
MoveWindow
-
FindWindow
-
Wie sähe das dann komplett aus?
-
Naja komplett kann ich dir nicht posten bissel selber arbeiten musst du schon. Aber einfach mit FindWindow(...); das Handle der Messagebox suchen und dann mit MoveWindow(...); verschieben genaue Infos über die Funktionen findest du in der MSDN.
MfG schirrmie
-
-
@la und schirrmie: Denkt nochmal über das nach, was ihr da geschrieben habt...
@warning: Ich denke, Hooks sind hier ein wenig krass. Außer, es ist eine MessageBox von einer anderen Anwendung.
-
Sag einfach was du denkst! Ich habe bereits darüber nachgedacht. Die Lösung mit dem Hook ist natürlich viel besser als mit FindWindow.
-
klär mich auf
-
@warning: Ich denke, Hooks sind hier ein wenig krass.
quatsch.
-
Also ich habs auch hingekriegt so wie ich es gedacht habe. Ich würde es jetzt aber wo ich das mit dem Hook weiß auf gar keinen Fall benutzen.

Aber trotzdem der Code:DWORD WINAPI ThreadProc(LPVOID lpParameter) { HWND messageBoxHandle = NULL; do { messageBoxHandle = FindWindow(NULL, TEXT("Titel")); Sleep(0); } while(messageBoxHandle == NULL); for(int i = 0; i < 500; ++i) { SetWindowPos(messageBoxHandle, NULL, i, 0, 0, 0, SWP_NOSIZE); Sleep(10); } return 0; } DWORD threadId; CreateThread(NULL, 0, ThreadProc, NULL, 0, &threadId); MessageBox(NULL, TEXT("Text"), TEXT("Titel"), MB_OK);
-
Naja, ohne neuen Thread oder Hook geht's halt nicht, weil ne MessageBox eben modal ist. Das heißt, die Funktion kehrt erst zurück, wenn das Fenster wieder geschlossen ist. Da ist halt nix mit FindWindow - außer man benutzt eben einen Hook oder Thread.
Ich find das alles viel zu überladen und denke ein eigener kleiner Dialog tuts auch.