OVH Cloud OVH Cloud

Une idee please

5 réponses
Avatar
Christian ROLET
Tout d'abord un enorme merci =E0 ceux qui m'ont plus d'une=20
fois sauv=E9 la mise ! c'est genial cette communaut=E9 quand=20
m=EAme ...

je cherche cette fois ci une id=E9e pour centrer si cela=20
est possible une common dialog box. J'en utilise pour=20
faire des choix de fichiers texte =E0 importer dans des=20
tables Access. Ca n'est pas dramatique mais quand=20
elles 'affichent la premiere fois elle se placent en haut=20
et =E0 gauche. Les proprietes Top et Left sont inoperantes.=20
Cependant en les centrant =E0 la mainla premiere fois , les=20
coups suivant elles restent centr=E9es !!

A lire la doc je ne suis pas sur que la position de ces=20
boites soit definissable en code. Mais je suis=20
probablement =E0 cote de mes pompes.

Je precise je suis en VB6.

Amities a toutes et a tous

Christian

5 réponses

Avatar
le_troll
Tu parles des InputBox ?

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"Christian ROLET" a écrit dans le
message de news: 22ba001c45e27$a66b93a0$
Tout d'abord un enorme merci à ceux qui m'ont plus d'une
fois sauvé la mise ! c'est genial cette communauté quand
même ...

je cherche cette fois ci une idée pour centrer si cela
est possible une common dialog box. J'en utilise pour
faire des choix de fichiers texte à importer dans des
tables Access. Ca n'est pas dramatique mais quand
elles 'affichent la premiere fois elle se placent en haut
et à gauche. Les proprietes Top et Left sont inoperantes.
Cependant en les centrant à la mainla premiere fois , les
coups suivant elles restent centrées !!

A lire la doc je ne suis pas sur que la position de ces
boites soit definissable en code. Mais je suis
probablement à cote de mes pompes.

Je precise je suis en VB6.

Amities a toutes et a tous

Christian
Avatar
non pas du tout; j'utilise un objet common dialog box qui
me fournit la boite standard de windows pour selectionner
un nom de fichier dans un repertoire. C'est comme les
boites de selction qu'on a dans Word ou Excel pour les
fonction "Fichier ouvrir"

-----Message d'origine-----
Tu parles des InputBox ?

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours


raison !
------------------------------------------


"Christian ROLET"


a écrit dans le
message de news: 22ba001c45e27$a66b93a0


$
Tout d'abord un enorme merci à ceux qui m'ont plus d'une
fois sauvé la mise ! c'est genial cette communauté quand
même ...

je cherche cette fois ci une idée pour centrer si cela
est possible une common dialog box. J'en utilise pour
faire des choix de fichiers texte à importer dans des
tables Access. Ca n'est pas dramatique mais quand
elles 'affichent la premiere fois elle se placent en haut
et à gauche. Les proprietes Top et Left sont inoperantes.
Cependant en les centrant à la mainla premiere fois , les
coups suivant elles restent centrées !!

A lire la doc je ne suis pas sur que la position de ces
boites soit definissable en code. Mais je suis
probablement à cote de mes pompes.

Je precise je suis en VB6.

Amities a toutes et a tous

Christian


.



Avatar
le_troll
Ah ouais, je connais, j'ai utilisé, mais si rarement, ben j'ai souvenir que
comme pour toi, la boîte se plaçait à la dernière position qu'elle avait
occupée, peut être avec les API, faudra voir demain les spécialistes...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


a écrit dans le message de news:
233f501c45e29$438bec10$
non pas du tout; j'utilise un objet common dialog box qui
me fournit la boite standard de windows pour selectionner
un nom de fichier dans un repertoire. C'est comme les
boites de selction qu'on a dans Word ou Excel pour les
fonction "Fichier ouvrir"

-----Message d'origine-----
Tu parles des InputBox ?

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours


raison !
------------------------------------------


"Christian ROLET"


a écrit dans le
message de news: 22ba001c45e27$a66b93a0


$
Tout d'abord un enorme merci à ceux qui m'ont plus d'une
fois sauvé la mise ! c'est genial cette communauté quand
même ...

je cherche cette fois ci une idée pour centrer si cela
est possible une common dialog box. J'en utilise pour
faire des choix de fichiers texte à importer dans des
tables Access. Ca n'est pas dramatique mais quand
elles 'affichent la premiere fois elle se placent en haut
et à gauche. Les proprietes Top et Left sont inoperantes.
Cependant en les centrant à la mainla premiere fois , les
coups suivant elles restent centrées !!

A lire la doc je ne suis pas sur que la position de ces
boites soit definissable en code. Mais je suis
probablement à cote de mes pompes.

Je precise je suis en VB6.

Amities a toutes et a tous

Christian


.



Avatar
François Picalausa
Hello,

Jette un oeil ici:
http://groups.google.com/groups?threadm=%23tfwYj89DHA.1632%40TK2MSFTNGP12.phx.gbl
Il existe une autre possibilité nettement plus simple qui consiste à placer
un contrôle common dialog dans une picturebox et à déplacer la picturebox.
Celà déplacera la fenêtre.
MAIS, pour centrer la common dialog, il faut alors supposer que sa taille
restera toujours la même... ce n'est pas vraiment ce que j'apellerais une
solution solide...
On pourrait aussi mesurer la taille de la dialog box avec un timer pour
"renforcer" cette solution, celà reviendrait au code proposé par Zoury mais
avec une picturebox au lieu d'APIs pour déplacer la common dialog.

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Christian ROLET" a écrit dans le
message de news:22ba001c45e27$a66b93a0$
Tout d'abord un enorme merci à ceux qui m'ont plus d'une
fois sauvé la mise ! c'est genial cette communauté quand
même ...

je cherche cette fois ci une idée pour centrer si cela
est possible une common dialog box. J'en utilise pour
faire des choix de fichiers texte à importer dans des
tables Access. Ca n'est pas dramatique mais quand
elles 'affichent la premiere fois elle se placent en haut
et à gauche. Les proprietes Top et Left sont inoperantes.
Cependant en les centrant à la mainla premiere fois , les
coups suivant elles restent centrées !!

A lire la doc je ne suis pas sur que la position de ces
boites soit definissable en code. Mais je suis
probablement à cote de mes pompes.

Je precise je suis en VB6.

Amities a toutes et a tous

Christian


Avatar
Jessy Sempere [MVP]
Bonjour

J'avais planché la dessus pour Access ce fut dur mais bon...

Je te mets copie de ce qu'il en était :

PS : ce code utilise la fonction AdressOf qui n'est pas disponible sous
Office 97 mais pour ce que ça interresse, j'ai une fonction de remplacement
pour cette fonction...

Voici le code, pour essayer, il suffit de lancer la fonction :
"OpenFile_EXE()"

'***********************************************
'** Déclaration pour centrage boîte de dialogue FICHIER
Public Const HCBT_ACTIVATE = 5
Public Const WH_CBT = 5

Public hHook As Long

Public Declare Function GetCurrentThreadId Lib "KERNEL32" () As Long

Public Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As
Long) As Long

'** Déclaration pour centrer une boîte de dailogue
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, _
lpRect As RECT) As Long

Public Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long)
As Long

Public Const SM_CXFULLSCREEN = 16
Public Const SM_CYFULLSCREEN = 17

Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, _
ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Public CntrDialog As Boolean

Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
Instance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustomFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Public Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Public Const OFN_AllowMultiSelect = &H200
Public Const OFN_EXPLORER = &H80000
Public Const OFN_LongNames = &H200000

Global Dialogue As OPENFILENAME

Public strFiltre As String
Public strFile As String
Public RetVal As Long

Public Function OpenFile_EXE()
OpenFile "c:"
End Function

Public Function OpenFile(strInitialDir As String, Optional ctrDialogue As
Boolean = True) As String

OpenFile = ""
strFiltre = "Fichiers Word" & Chr$(0) & "*.doc;*txt" & Chr$(0) & _
"Fichiers Access" & Chr$(0) & "*.mdb" & Chr$(0) & _
"Fichiers Excel" & Chr$(0) & "*.xls" & Chr$(0) & _
"Tous les fichiers" & Chr$(0) & "*.*"

If ctrDialogue Or IsMissing(ctrDialogue) Then
Dim Thread As Long
Thread = GetCurrentThreadId()
hHook = SetWindowsHookEx(WH_CBT, AddressOf WinProc, 0, Thread)
End If

With Dialogue
.lStructSize = Len(Dialogue)
.lpstrFilter = strFiltre
.lpstrFile = Space(254)
.nMaxFile = 255
.lpstrFileTitle = Space(254)
.nMaxFileTitle = 255
.lpstrInitialDir = strInitialDir
.lpstrTitle = "Recherche d'un fichier"
.Flags = 6148 Or OFN_AllowMultiSelect Or OFN_LongNames Or OFN_EXPLORER
End With

RetVal = GetOpenFileName(Dialogue)

If RetVal >= 1 Then
OpenFile = Dialogue.lpstrFile
Else
OpenFile = ""
Exit Function
End If

End Function

'** Procédure de centrage boîte de dialogue FICHIER
Public Function WinProc(ByVal lMsg As Long, ByVal hwnd As Long, _
ByVal lParam As Long) As Long

If lMsg = HCBT_ACTIVATE Then
CenterDialog hwnd
UnhookWindowsHookEx hHook
End If
WinProc = False

End Function

'** Procédure pour centrer une boîte de dialogue sur le bureau
Public Function CenterDialog(hwnd As Long)
Dim WinRect As RECT, ScrWidth As Integer, ScrHeight As Integer
Dim DlgWidth As Integer, DlgHeight As Integer
GetWindowRect hwnd, WinRect
DlgWidth = WinRect.Right - WinRect.Left
DlgHeight = WinRect.Bottom - WinRect.Top
ScrWidth = GetSystemMetrics(SM_CXFULLSCREEN)
ScrHeight = GetSystemMetrics(SM_CYFULLSCREEN)
MoveWindow hwnd, (ScrWidth - DlgWidth) / 2, _
(ScrHeight - DlgHeight) / 2, DlgWidth, DlgHeight, 1
End Function
'***********************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------