Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249364 (10800)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Fenstermanipulation !
Joerg Bauer
| Datum:03.11.01 16:11 (JoergSeineOma@gmx.de) |
Wie man weiß, ist es möglich mit Fenstern in Window eine Menge Blödsinn anzustellen. Zum Bersipiel per API ein Loch rausschneiden. Aber zum Thema fallen mir spontan 2 Fragen ein ! 1. Kann man den 'Windowstyle' (Hat es eine Titelzeile oder nicht, hat das Fnester einen Rahmen oder nicht, etc.) eines beliebigen Fensters dessen Handle man hat nachträglich verändern ? 2. Lassen sich zwei Fenster verschmelzen, sodass sie aussehen und sich auch verhalten, als ob es nur eines wäre ? Vielen Dank im vorraus, Joerg Bauer
Philipp Sternberg
| Datum:04.11.01 19:35 (ps@burghardt-ib.de) |
Hi, auf deine zweite Frage kann ich dir so nichts sagen, aber zu deiner ersten Frage: Das geht mit der SetWindowLong Funktion aus der API Hier ein kleines Beispielprogramm (am besten siehst du mal bei SetWindowLong in der APi Doc nach, Hier noch ein klienes Beispielprogramm, dass das kleine Schließen-Kreuz nachträglich entfernt: Wenn du das fenster nach dem tastendruck verschiebst, verschwindet das Kreuz sofort !
    def @SetWindowLong(3) !"user32.dll","SetWindowLongA"
    windowtitle "Testfenster"
    windowstyle 24
    window 0,0-300,300
    Print "ok.... Taste zum verändern drücken !"
    waitkey
    @SetWindowLong(%hwnd,-16,$50C00000
    whilenot %key = 2
    wend
    end
    'GWL_EXSTYLE	(-20)
    'GWL_STYLE	(-16)
    'GWL_WNDPROC	(-4)
    'GWL_HINSTANCE	(-6)
    'GWL_HWNDPARENT	(-8)
    'GWL_ID	(-12)
Funktioniert aber nur wenn der funktionsaufruf aus dem selben Programm stammt wie das zu verändernde Window. Philipp
Horst Horn
| Datum: 09.11.01 14:52 (privat@web-treffpunkt.de) |
Hallo Zu Frage 1: '---------------------------------------------- DEF GetSystemMenu(2) !"USER32","GetSystemMenu" 'Beide DEF's sind von ROKO DEF EnableMenuItem(3) !"USER32","EnableMenuItem" '---------------------------------------------- 'HAUPTPROGRAMM: 'WindowStyle 24 'ohne Menuleiste 'WindowStyle 26 'ohne Maximieren-Knopf WindowStyle 28 'ohne Minimieren-Knopf WINDOW SUB(DIV(%MaxX,2),225),SUB(DIV(%MaxY,2),125)-450,250 'erste ein normales Fenster erstellen - EnableMenuitem(GetSystemMenu(GetActiveWindow(),0),$F060,1) 'dann die Definationen aufrufen UseIcon "A" WindowTitle "Deaktivieren von System-Ende-Button" DrawText 20,50,"Hier ist der Ende-Knopf von Anfang an dektiviert" DrawText 20,70,"Mit Kombinieren der einzelnen 'WindowStyle'-Parameter" DrawText 20,90,"können auch der Mini- und Maxi-Knopf stillgelegt werden" DrawText 20,120,"Die Sache stammt von Rolf Koch (besser bekannt als ROKO)" Waitinput '------------------------------------ Zu Frage 2: Ich helfe mir immer so: Windowstyle 84 (keine Titelzeile) dann das 2. Fenster pixelgenau über das erste legen. Sieht aus, als wenn nur 1. Fenster da ist und da keine Titelzeile vorhanden ist, kann das zweite Fenster auch nicht verschoben werden. Ist nicht das Gelbe vom Ei, aber es hilft ;o) Gruss

| Zurück zur Übersicht