Koverhage hat geschrieben: ↑Di, 02. Apr 2019 8:49
Ich habe viele Lösungen gesehen die mit OpusApp arbeiten, die Programmierer scheinen alle keine Ahnung zu haben oder was meinst Du ?
hast du eine Xbase++ Lösung die "OpusApp" enthält gefunden
es gibt viele Quellen mit unterschiedlichen Niveau.
Wenn man viel (Demo) Source Code gesehen hat kommt man schon dahinter auf welchem Niveau der Code geschrieben wurde.
ist starte meine Suche bei Google dann immer mit "+MSDN +Begriff" wobei ich meisten zunächst nach Konstanten suche die ALLE verwenden. über den "Sinn" der Konstanten komme ich dann dahinter was die API Function machen sollte wenn man die Konstanten verwendet.
wenn eure Word / Outlook / Excel / Access / Powerpoint & Co auf SW_SHOW so reagiert das es die App auch aus der Taskleiste holt und "normal" anzeigt dann ist das "nicht normal"
.
natürlich ist so eine Erweiterung ganz einfach und vielleicht dachte ein Programmier(in) bei M$ das es doch "ganz praktisch sei" wenn man SW_SHOW auf SW_RESTORE erweitert weil "viele falsche Anfragen" deshalb kommen und man nicht immer auf SW_RESTORE verweisen muss was dazu gedacht ist
btw.
bitte mal testen : jeweils Vollbild und dann minimieren und Test App starten. welche Grösse hat dann Word & Co
---
leider funktioniert Code aus anderen Sprachen unter Xbase++ nicht immer so wie erhofft.
sogar ot4xb verhält sich anders (besser
) als DllCall()
Code: Alles auswählen
/************************************************************
* warum versagt SysSysColors ?
* DLLFUNCTION SetSysColors(n,@s,@v) USING STDCALL FROM USER32.DLL
* DLLFUNCTION GetSysColor(n) USING STDCALL FROM USER32.DLL
************************************************************/
// fail
* SetSysColors(1,aNew,aRGB)
// work
@USER32:SetSysColors(1,aNew,aRGB)
Koverhage hat geschrieben:Wenn ein Show das Gleiche bewirkt wie ein Klick auf das Icon in der Taskleiste, warum soll ich da noch ein Restore machen
wie schon gesagt ist die Aussage von Mike und mir gemäss Windows wo jede Windows App drauf reagiert.
Es gibt eben die beiden Konstanten wobei
SW_SHOW 5 Activates the window and displays it in its current size and position.
bei einer minimierten App, in der Taskleiste, sind Size und Pos 0
für diesen Fall ist nun SW_RESTORE gedacht
SW_RESTORE 9 Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position.
An application should specify this flag when restoring a minimized window.
wie schon gesagt "so" steht es da bei MSDN
! Note : die ganzen SW_ Konstanten funktionieren dann wenn es ein Menu gibt wenn man "normal" auf das Icon oben links klickt. wenn das Menu nicht existiert oder gesperrt ist funktionieren die Konstanten nicht mehr.
der eigentliche Windows Befehl währe
Code: Alles auswählen
rc := {0,0,0,0}
@user32:GetClientRect(hWnd,@rc)
@user32:SetWindowPos(::hControl,0,0,0,rc[3],rc[4],nOr(SWP_NOACTIVATE,SWP_NOCOPYBITS,SWP_NOREPOSITION,SWP_NOSENDCHANGING,SWP_NOZORDER))
welcher ausgeführt wird wenn der WM_SIZE Event vom Control empfangen wird.
---
für das Thema ist die Lösung ausreichend wenn eure Word-Version so reagieren ...
aber wie der Snapshot zeigt hab ich eine Kombination erwischt die völlig versagen kann