Bonjour,
J'aimerais créer un programme avec une interface "moderne".
C'est à dire :
Sur la gauche de la fenêtre un groupbox contenant des boutons et au milieu quelque chose qui permet d'afficher un exécutable.
L'idée, c'est que chaque bouton contenu dans le groupbox est un "module", un exécutable externe, pour éviter les compilations super longues....
Le clic sur le bouton fait appel à l’exécutable dans la partie centrale de l'interface.
J'ai essayé avec un tabcontrol car j'aime bien l'idée de créer chaque fois un onglet qui contient l'exe en cours.... mais sans succès.
J'ai cherché pendant 2 jours sur le net, j'en suis à ceci :
Ca fonctionne +/- donc je suppose que j'y suis presque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Imports System.Diagnostics.Process Imports System.Runtime.InteropServices Public Class Accueil Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer Private Const WM_SYSCOMMAND As Integer = 274 Private Const SC_MAXIMIZE As Integer = 61488 Private proc As Process = New Process() Private Sub QuitterToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles QuitterToolStripMenuItem.Click End End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click proc = Process.Start("chemin du programme à exécuter") proc.WaitForInputIdle() SetParent(proc.MainWindowHandle, TabControl1.Handle) SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0) End Sub End Class
Si je prends notepad par exemple, ça marche... même si ça ne s'ouvre pas dans un onglet.
Un autre exé s'ouvre mais toujours en pop-up comme une nouvelle appli.
Quelqu'un a-t-il une solution?
Ou bien ce genre d'interface n'est pas possible avec visual studio/ VB.net ?
Partager