Platz abschneiden wie bei ICQ?
-
Naja in zwei Variabeln die ursprüngliche Größe des Desktops speichern und dann wieder MoveWindow().
Aber du müsstes immer nach dem Verändern der Desktopgröße noch allen Fenster eine Nachricht senden, die sie veranlässt sich nochmals an die neue Größe des Desktop anzupassen.
-
Bei mir funktioniert das irgendwie nicht, aber
Ruckgängig machen geht warscheinlich mitHWND hwnd1 = FindWindow("Progman","Program Manager"); HWND hwnd2 = FindWindowEx(hwnd1, 0, "SHELLDLL_DefView",NULL); MoveWindow(hwnd2,0,0,1024,768,true);
-
HWND hwnd1 = FindWindow("Progman","Program Manager"); HWND hwnd2 = FindWindowEx(hwnd1, 0, "SHELLDLL_DefView",NULL); RECT rect; GetClientRect(hwnd2,&rect); MoveWindow(hwnd2,0,0,rect.right - Form1->Width,rect.bottom,true);
Funktioniert bei mir prima. Du musst den Programmen halt noch irgendwie sagen, dass die Desktopgröße sich verändert hat. Sonst gibt es ja für die kein Grund ihre Größe zu ändern. Hab aber auch keine Ahnung was das sein könnte.. vom Sinn her WM_DESKTOP_SIZE_CHANGED
-
Du könntest auch per EnumWindows() einfach alle Fenster durchgehen, dir die Größe holen, rechnen ob das Fenster im Bereich deines Fensters ist und bei Bedarf verschieben.
-
Hi,
das musste über die API Funktionen für eine ApllicationBar machen.Wenn Du deine Mailadresse in deinem Profil angegeben hättest würde ich dir auch nen simples Beispiel senden, aber .....
Also bei interesse melde dich bei mir
-
Also ich hab das mal so gemacht...
BOOL CALLBACK CheckWindows(HWND hwnd,LPARAM lParam) { char TheCaption[256]; GetWindowText(hwnd,TheCaption, 255); //Wenn das Fenster sichtbar ist und es sich nicht um das eigene Fenster handelt... if(strcmp(TheCaption,Form1->Caption.c_str()) != 0 && hwnd != Application->Handle){ if(IsWindowVisible(hwnd)){ RECT rect; GetWindowRect(hwnd,&rect); //Testen, ob es das eigene Fenster überschneidet if(rect.left + rect.right > Screen->Width - Form1->Width) //Wenn ja, verschieben MoveWindow(hwnd,rect.left,rect.top,rect.right + ((Screen->Width - Form1->Width) - (rect.left + rect.right)),rect.bottom,true); } } return TRUE; }
//--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { //Desktop verkleinern HWND hwnd1 = FindWindow("Progman","Program Manager"); HWND hwnd2 = FindWindowEx(hwnd1, 0, "SHELLDLL_DefView",NULL); RECT rect; ::GetClientRect(hwnd2,&rect); MoveWindow(hwnd2,0,0,rect.right - Form1->Width,rect.bottom,true); //Fenster verkleinern EnumWindows((WNDENUMPROC)CheckWindows, 0); } //---------------------------------------------------------------------------
[EDIT] Das mit der ApllicationBar wage ich ja zu bezweifeln. Kannst den Code nicht einfach mal posten? Würde mich interessieren[/EDIT]
-
Kann ich machen also hier der code
<fullquote gelöscht>
Ich hoffe mal das ich jetzt nicht zuviel gepostet habe aber vielleicht ist es auch etwas für die FAQ.
Ein projekt als zip file könnte ich auch noch anbieten falls jemand interesse hat
-
Also nachdem ich mir das Projekt hier runtergeladen habe und ein bisschen daran rumgebosselt habe, läuft's jetzt. Is sicherlich ne nette Sache, aber ich weiß nich, ob das wirklich das ist, was er sucht. Sein Programm ist ja schon fertig. Aber ist auf jenden Fall luxuriös, Danke.
-
Fox-Alpha schrieb:
Ich hoffe mal das ich jetzt nicht zuviel gepostet [...]
Eigentlich schon, der Link hätte es doch durchaus getan. Schliesslich hast du selbst ja keine weiterführenden Erklärungen o.ä. gegeben.
Und das Fehlen jeglicher Quellenangabe ist auch nicht grad die feine englische Art ...
-
Mein Hinweis das ich nicht mehr wusste wo ich es her hatte ist leider den 3 oder 4 edit's zum opfer gefallen.
Ich habe den Code auch aus der tiefsten versenkung gekramt und selber nicht wirklich benutzt. Ich habe mir auch nicht die mühe gemacht ob doch ne URL in den Kommentaren stand.