Userform sans cadre : souci

  • Initiateur de la discussion Initiateur de la discussion Manu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Manu

Guest
Bonjour à tous,

J'ai au démarrage un userform sans cadre avec le code suivant :

Code:
Option Explicit
Private Declare Function FindWindow Lib 'user32' Alias 'FindWindowA' _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib 'user32' Alias _
'GetWindowLongA' (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib 'user32' Alias 'SetWindowLongA' _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib 'user32' (ByVal hWnd As Long) As Long
Private Declare Function SendMessage Lib 'user32' Alias 'SendMessageA' _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long _
, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib 'user32' () As Long


Private Sub UserForm_Initialize()
Dim hWnd As Long, Style As Long

hWnd = FindWindow(vbNullString, Me.Caption)
Style = GetWindowLong(hWnd, -16) And Not &HC00000
SetWindowLong hWnd, -16, Style
DrawMenuBar hWnd
End Sub

Tout se passe bien cela fonctionne. Sauf que je travil en double écran. Au démarrage excel se place sur mon écran de droite, mon userform se place lui sur mon écran de gauche.

Ce qui est étrange c'est que mes autres userforms se place eux correctement sur mon écran de droite.

Si je supprime la partie du code de suppression du cadre le userform se place correctement sur l'écran de droite

Une idée pour règler mon problème ?

Merci
 
moi mon conseil, et ne le prends pas mal, mais j'en fais une règle dans tous mes programmes (sauf ceux que je fais pour le fun - jeux etc. ) c'est de laisser tomber toutes ces fioritures, qui n'apportent rien aux fonctionnalités de ton programme et qui ne se révèleront qu'une source de problèmes aussi variés qu'insolubles.

En règle générale, il faut se poser les questions suivantes : est-ce que je comprends les lignes que j'utilise ? Et si oui (ce qui est rarement le cas avec les API) est-ce que je suis capable de modifier quelque chose pour que ça marche mieux ? Moi si je ne sais pas répondre, je n'utilise pas.
Ceci dit, c'est probablement dû à un problème de hwnd mal initialisé en raison de ta configuration double écran, mais je ne peux pas t'en dire plus.
 
moi mon conseil, et ne le prends pas mal, mais j'en fais une règle dans tous mes programmes (sauf ceux que je fais pour le fun - jeux etc. ) c'est de laisser tomber toutes ces fioritures, qui n'apportent rien aux fonctionnalités de ton programme et qui ne se révèleront qu'une source de problèmes aussi variés qu'insolubles.

En règle générale, il faut se poser les questions suivantes : est-ce que je comprends les lignes que j'utilise ? Et si oui (ce qui est rarement le cas avec les API) est-ce que je suis capable de modifier quelque chose pour que ça marche mieux ? Moi si je ne sais pas répondre, je n'utilise pas.
Ceci dit, c'est probablement dû à un problème de hwnd mal initialisé en raison de ta configuration double écran, mais je ne peux pas t'en dire plus.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
46
Affichages
2 K
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
361
Réponses
7
Affichages
576
Retour