Calculatrice windows dans un formulaire?

Signaler
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
Bonjour!

juste une petite question:

est-il possible d'afficher la calculatrice windows dans un userform, mais que celle-ci fasse partie intégrante de l'userform?

(j'ai trouvé un code qui permet d'ouvrir le fichier CALC.exe, mais pas de code pour intégrer cette dernière dans le formulaire)

Merci d'avance pour l'info!

11 réponses

Messages postés
76
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
7 mai 2009

Je pense que le mieux serait de le créer toi même !

Ceci pourrait p e te convenir.
http://www.vbfrance.com/code.aspx?ID=31038
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

bah, en vérité, je n'en ai pas vraiment besoin, c'était juste une question que je me posais!

Mais merci pour le lien, je le met de côté, ça peut toujours servir!
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Bonjour,

Utillise alors la calculatrice Calc.exe, que tu peux appeler avec la fonction Shell !
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

salut jmfmarques,

oui, ça j'avais trouvé le code sur le forum...

mais la question que je me posais, c'était de savoir si on pouvait l'intégrer la calculatrice dans un userform.

merci!
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Messages postés
97
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
3 septembre 2010

Dans le userform tu mets :
(j'ai mis calculator, mais le nom de la fenêtre de ta calculatrice peut être différent)

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Dim a As Long

Private Sub UserForm_Activate()
Dim lhwnd As Long
lhwnd = FindWindow(vbNullString, Me.Caption)
a = FindWindow(vbNullString, "Calculator")
Call SetParent(a, lhwnd)
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Call SetParent(a, 0)
End Sub
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

salut oommeeggaa3d,

j'ai essayé ton code mais il ne se passe rien....

j'ai du rater un truc quelque part!
Messages postés
97
Date d'inscription
dimanche 24 avril 2005
Statut
Membre
Dernière intervention
3 septembre 2010

salut

as-tu ouvert une calculatrice windows auparavant ?
si son nom est calculator, ca marchera tel quel, sinon modifie  a = FindWindow(vbNullString, "Calculator") pour avoir le nom correct.

bon courage
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

ah ok!

j'avais pas compris qu'il fallait ouvrir la calculatrice avant!

maintenant ça fonctionne!   merci!

je vais continuer avec mes bêtes questions:

est-ce que tu sais "figer" ta calculatrice à un endroit précis dans ton userform?
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Utilise l'API SetWindowPos.
La déclaration en C# est




[DllImport("user32")]
bool SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter, int x, int y, int cx, int cy, uint flags);

Les paramètres :
hwnd -> Handle de la calculette
hwndInsertAfter -> Constante HWND_TOP (new IntPtr(0))
x, y, cx, cy -> Position et taille de la fenêtre
flags -> A mon avis 0, regarde sur la page que je t'ai mise en lien plus haut voir si des options t'intéressent...





Julien.
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Oups que je suis bête on est sur VBFrance, en VB ça donne :


Public Declare Function SetWindowPos Lib "user32.dll" ( _

ByVal hWnd As IntPtr, _

ByVal hWndInsertAfter As IntPtr, _

ByVal X As Int32, _

ByVal Y As Int32, _

ByVal cx As Int32, _

ByVal cy As Int32, _

ByVal uFlags As Int32 _

) As Boolean

Julien.