PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Positionnement de la boite DIALOGUE
Positionnement de la boite DIALOGUE
Débuté par Michel HERRSCHER, 13 oct. 2006 22:58 - 5 réponses
Posté le 13 octobre 2006 - 22:58
Bonjour,

Apparemment elle s'affiche au milieu de l'écran par défaut

comment la positionner au milieu de la fenêtre appelante ?

Merci de vos lumières

--
Michel HERRSCHER CONSULTANT
Tel : 33450870912
http://www.mhc.herrscher.fr
Président WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org
Posté le 13 octobre 2006 - 23:34
Michel HERRSCHER a écrit :
Bonjour,

Apparemment elle s'affiche au milieu de l'écran par défaut

comment la positionner au milieu de la fenêtre appelante ?

Merci de vos lumières

Avec un hook ? Si tu parles de la d'une fenetre MessageBox.

Sur WIndasso, il y a un exemple de hook sur les messages box.


PYT
Posté le 13 octobre 2006 - 23:35
Michel HERRSCHER a écrit :
Bonjour,

Apparemment elle s'affiche au milieu de l'écran par défaut

comment la positionner au milieu de la fenêtre appelante ?

Merci de vos lumières

Voici un exemple de code :

Voici un exemple de hook sur une fenêtre ouinon. La position et les
dimensions sont modifiées.

***********************
GLOBAL
hHook est un entier
HCBT_ACTIVATE est un entier = 5
WH_CBT est un entier = 5

***********************
PROCEDURE CBTProc(nCode est un entier, wParam est un entier,lParam est
un entier )

hwnd est un entier
IF(nCode<0) THEN
RENVOYER AppelDLL32("user32","CallNextHookEx" , hHook, nCode, wParam,
lParam)
END

SELON nCode
CAS HCBT_ACTIVATE :
hwnd = wParam
AppelDLL32("user32","MoveWindow" , hwnd, 0, 0, 200, 200, Vrai)
RENVOYER 0
FIN

RENVOYER AppelDLL32("user32","CallNextHookEx" , hHook, nCode, wParam,
lParam)

***********************
PROCEDURE OuiNonEtendue(texte est une chaîne)

rep est un entier

hHook = API("user32","SetWindowsHookExA" ,
WH_CBT,&CBTProc,Null,API("kernel32","GetCurrentThreadId" ))

rep = OuiNon(texte)

AppelDLL32("user32","UnhookWindowsHookEx" , hHook)


RENVOYER rep

***********************
SI OuiNonEtendue("Femer la fenêtre ?!") ALORS
Ferme
FIN

***********************
Posté le 14 octobre 2006 - 15:32
Je ne sais pas si cela peut vous aider, mais il y avait cet article il y a qelques jours:
http://forum.pcsoft.fr/post.awp…

Sous toute réserve...

Michel, Montréal
Posté le 14 octobre 2006 - 15:33
Bonjour Pierre

Je pensais plus à des paramètres directs à donner pour la boite dans l'appel
DIALOGUE. car les fonctions
OUI / NON erreur etc. sont déjà affichées au centre de la fenêtre appelante.

A la place du hook, j'avais carrément fait ma propre fenêtre de dialogue
pour gérer l'ensemble des paramètres.

SUGGESTION à PCSoft S'il n'est pas trop tard pour la version XI: ;-)))

disposer d'un choix de positionnement dans l'assistant : au centre écran,
au centre fenêtre appelante, à la position du curseur ... ou mini d'un choix
global au niveau du projet, voire un paramètre dans l'appel de DIALOGUE(
j'ai pas testé SAISIE, mais suivre la même idée serait bien)


Merci Pierre
--
Michel HERRSCHER CONSULTANT
Tel : 33450870912
http://www.mhc.herrscher.fr
Président WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org


Michel HERRSCHER a écrit :
Bonjour,

Apparemment elle s'affiche au milieu de l'écran par défaut

comment la positionner au milieu de la fenêtre appelante ?

Merci de vos lumières


Dans un message Pierre disait :

> Voici un exemple de code :

Voici un exemple de hook sur une fenêtre ouinon. La position et les
dimensions sont modifiées.

***********************
GLOBAL
hHook est un entier
HCBT_ACTIVATE est un entier = 5
WH_CBT est un entier = 5

***********************
PROCEDURE CBTProc(nCode est un entier, wParam est un entier,lParam est
un entier )

hwnd est un entier
IF(nCode<0) THEN
RENVOYER AppelDLL32("user32","CallNextHookEx" , hHook, nCode, wParam,
lParam)
END

SELON nCode
CAS HCBT_ACTIVATE :
hwnd = wParam
AppelDLL32("user32","MoveWindow" , hwnd, 0, 0, 200, 200, Vrai)
RENVOYER 0
FIN

RENVOYER AppelDLL32("user32","CallNextHookEx" , hHook, nCode, wParam,
lParam)

***********************
PROCEDURE OuiNonEtendue(texte est une chaîne)

rep est un entier

hHook = API("user32","SetWindowsHookExA" ,
WH_CBT,&CBTProc,Null,API("kernel32","GetCurrentThreadId" ))

rep = OuiNon(texte)

AppelDLL32("user32","UnhookWindowsHookEx" , hHook)


RENVOYER rep

***********************
SI OuiNonEtendue("Femer la fenêtre ?!") ALORS
Ferme
FIN

***********************
Posté le 14 octobre 2006 - 21:25
Dans un message Lahellec Michel disait :

Je ne sais pas si cela peut vous aider, mais il y avait cet article il y
a qelques jours:
http://forum.pcsoft.fr/post.awp…

Sous toute réserve...

Michel, Montréal


pas tout à fait car Info ou Ouinon utilise la windevmessagebox , apparament
Dialogue pas.

--
Michel HERRSCHER CONSULTANT
Tel : 33450870912
http://www.mhc.herrscher.fr
Président WINDASSO - Association des utilisateurs WxxDEV(c)
http://www.windasso.org