Ça marche si au préalable on ouvre une fenêtre ou un requester:
Code : Tout sélectionner
MessageRequester("ok","azerty")
Import "User32.lib"
; Nous utilisons le pseudotype 'p-unicode' pour les paramètres chaîne, car
; MessageBoxW() est une fonction unicode seulement. Le compilateur va
; automatiquement convertir les chaînes en unicode quand nécessaire.
;
MessageBoxW(Fenetre.i, Corps$, Titre$, Options.i = 0)
;MessageBoxW(Fenetre.l, Corps.p-unicode, Titre.p-unicode, Options.l=0) ; fonctionne
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
BoiteDeMessage(Fenetre.i, Corps$, Titre$, Options.i) As "MessageBoxW"
CompilerElse
BoiteDeMessage(Fenetre.i, Corps$, Titre$, Options.i) As "_MessageBoxW@16"
BoiteDeMessage2(Fenetre.l, Corps.p-unicode, Titre.p-unicode, Options.l ) As "_MessageBoxW@16"
CompilerEndIf
EndImport
; Cela fonctionnera correctement en mode ascii et en mode unicode, même si l'API est uniquement
; unicode car le compilateur s'occupera lui-même de la conversion.
;
MessageBoxW(0, "Salut", "le Monde")
BoiteDeMessage(0, "Salut 2", "le Monde 2",0)
BoiteDeMessage2(0, "Salut 3", "le Monde 3",0)
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 220, 100, "Exemple...", #PB_Window_SystemMenu)
ButtonGadget (1, 10, 60, 200, 30, "Fermer")
Import "User32.lib"
; Nous utilisons le pseudotype 'p-unicode' pour les paramètres chaîne, car
; MessageBoxW() est une fonction unicode seulement. Le compilateur va
; automatiquement convertir les chaînes en unicode quand nécessaire.
;
MessageBoxW(Fenetre.i, Corps$, Titre$, Options.i = 0)
;MessageBoxW(Fenetre.l, Corps.p-unicode, Titre.p-unicode, Options.l=0) ; fonctionne
CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
BoiteDeMessage(Fenetre.i, Corps$, Titre$, Options.i) As "MessageBoxW"
CompilerElse
BoiteDeMessage(Fenetre.i, Corps$, Titre$, Options.i) As "_MessageBoxW@16"
BoiteDeMessage2(Fenetre.l, Corps.p-unicode, Titre.p-unicode, Options.l ) As "_MessageBoxW@16"
CompilerEndIf
EndImport
; Cela fonctionnera correctement en mode ascii et en mode unicode, même si l'API est uniquement
; unicode car le compilateur s'occupera lui-même de la conversion.
;
MessageBoxW(0, "Salut", "le Monde")
BoiteDeMessage(0, "Salut 2", "le Monde 2",0)
BoiteDeMessage2(0, "Salut 3", "le Monde 3",0)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
CloseWindow(0)
End
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
C'est le même "problème" qu'avec les fonctions sonores, il faut au moins un requester pour que ça fonctionne sous XP.
M.