Seite 1 von 1

MessageBox_ und Windows XP Style

Verfasst: 11.11.2008 19:39
von Kai
MessageBox_ läuft bei mir nur, wenn ich Windows XP Style in Compilereinstellungen deaktiviere, ausser ich öffne zuvor ein Fenster.
Ist wohl nicht wirklich ein PB Bug, aber wundert mich wieso das so ist. :|

Code: Alles auswählen

MessageBox_(0, "Test", "", 0)

Verfasst: 11.11.2008 19:42
von cxAlex
Kann ich bestätigen. Mit Xp-Style nur wenn ich zuerst ein Fenster aufgemacht habe. Ohne gehts. Komisch.

//Edit: es geht auch wenn ich mit XP-Style zuerst den PB-Messgerequester aufgerufen habe. Wieso geht das direkt per API nicht? Ist doch dieselbe Funktion?

Verfasst: 11.11.2008 19:47
von ts-soft
Ihr sollt ja auch den MessageRequester nutzen, nicht die entsprechende
API. Ansonsten müßt ihr natürlich selber commoninit oder wie das heißt
ausführen. Da es aber keinen Unterschied zwischen der API und der PB
Funktion gibt, gibt es keinen Grund die API zu verwenden.

Bugreports sollten sich eigentlich auf PB beziehen, nicht auf die WinAPI.

Ich denke mal, das kann nach Allgemein verschoben werden :wink:

Verfasst: 11.11.2008 19:54
von cxAlex
Mit der Api kann ich aber z.B. dem Messagerequester einem Fenster zuteilen oder eine maximale Anzeigezeit festlegen. Manchmal braucht man das.

Gehört aber trozdem in Allgemein, ist ja kein PB Bug. ^^

Verfasst: 11.11.2008 20:03
von ts-soft
System oder Taskmodal geht auch mit der PB Version, Anzeigezeit festlegen?
Wo finde ich dieses Flag?

Verfasst: 11.11.2008 20:05
von Andesdaf
Also bei mir hat das ganze von Anfang an geklappt. Leerer Code, XP-Skin-Support, nichts vorher offen. Liegt wohl daran dass ich Vista hab und ihr XP.
An PB kanns nicht liegen denn ihr hab ja alle 4.3

Verfasst: 11.11.2008 20:08
von ts-soft
Bei mir gehts auch problemlos, egal ob 4.20 oder 4.30, aber unter XP gabs
da ein Problem, ist also bekannt.

Verfasst: 11.11.2008 21:23
von cxAlex
kA wiso, aber mit diesem Trick gehts (egal ob der User ein Admin ist oder nicht):

Code: Alles auswählen

IsUserAnAdmin_() ; Am Anfang aufrufen

MessageBox_(0,"test","test",0)

Verfasst: 11.11.2008 21:40
von Kai
Hm ich benutzte an sich auch nur MessageRequester aber kam halt mal auf die Idee denn API befehl zu missbrauchen, da kann man ja auch das Fensterhandle angeben, was auch null sein kann, der vorteil dabei ist ja außerdem das das Fenster nicht blockiert wird, wie realisiere ich das dann mit pb only?

Code: Alles auswählen

// Beispiel, Fenster wird nicht blockiert
OpenWindow(0, 0, 0, 640, 480, "")
MessageBox_(0, "test", "test", #MB_OK)