Bonjour,
Je sais que PureBasic utilise les API Windows pour afficher les "requester" ainsi que pour ouvrir des fenêtre avec OpenWindow().
Du coup je me demandais s'il y avait moyen d'avoir le look #PB_Window_Tool (paramètre de OpenWindow()) avec les MessageRequester() d'une manière ou d'une autre. J'ai essayé de simplement ajouter #PB_Window_Tool dans les paramètres de MessageRequester() mais ça ne marche pas, alors je suppose qu'il faut passer par les API.
MessageRequester(), API & co.
-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: MessageRequester(), API & co.
Cela ne semble pas possible, en tout cas pas facilement même avec les APIs. En effet, la fonction qui ouvre un requester ne renvoi pas le handle de la fenêtre. Voilà la doc sur les fenetres de type messageRequester: http://msdn.microsoft.com/en-us/library ... 85%29.aspx (même les APIs ne renvoient pas le handle de la fenetre crée, donc elle est difficilement modifiable).
-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: MessageRequester(), API & co.
Finalement avec un thread et le nom de la fenetre on s'en sort pas trop mal :
Voilà ce que j'obtiens:

Code : Tout sélectionner
Procedure thread(*titleWindow)
titleWindow.s = PeekS(*titleWindow)
string.s = Space(1024)
ok = 0
Repeat
;on liste les fenetre ouvertes
hwnd = FindWindow_(0,0)
While hwnd <> 0
;on ne considère pas les fenetres invisibles ou de type 'outil'
If GetWindowLong_(hWnd, #GWL_STYLE) & #WS_VISIBLE = #WS_VISIBLE And GetWindowLong_(hWnd, #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW <> #WS_EX_TOOLWINDOW
GetWindowText_(hwnd, @string, 1024)
If Trim(string) = titleWindow ;on a trouvé le fenetre cherchée
;on change ses attributs
SetWindowLong_(hwnd, #GWL_EXSTYLE, GetWindowLong_(hwnd, #GWL_EXSTYLE)|#WS_EX_TOOLWINDOW)
ok = 1
EndIf
EndIf
hwnd = GetWindow_(hwnd, #GW_HWNDNEXT) ;fenetre suivante
Wend
Delay(1)
Until ok
EndProcedure
name.s = "test"
CreateThread(@thread(), @name)
MessageRequester(name, "petit test")

Re: MessageRequester(), API & co.
Sympa ça lepiaf
Faut bien penser à killer les threads ensuite.

Faut bien penser à killer les threads ensuite.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: MessageRequester(), API & co.
Pas besoin, si tu regardes bien le code tu verra que la boucle du thread se termine dès que la fenetre devient de type 'outil' (ok passe à 1) donc le thread fini bien par se terminé =)Ar-S a écrit :Sympa ça lepiaf![]()
Faut bien penser à killer les threads ensuite.
Re: MessageRequester(), API & co.
Génial !
Merci beaucoup lepiaf
Merci beaucoup lepiaf

-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: MessageRequester(), API & co.
De rien =)
Re: MessageRequester(), API & co.
et ba ya un connaiseur ici a ce que je voie, t'es un bon toi, bravo !
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php