IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment éviter que l'on puisse déplacer la fenêtre


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Par défaut Comment éviter que l'on puisse déplacer la fenêtre
    Salut

    J'ai à nouveau besoin de votre aide

    J'ouvre le programme KaraFunPlayer au myen du code suivant et je fais en sorte qu'il s'affiche dans le panel que je souhaite.

    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
    'Déclarations pour obtenir la fenetre KaraFun dans ma form
        Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
        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
        Dim proc As Process
     
    Private Sub TRAVAIL_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                proc = Process.Start("C:\Musique\KaraFun Player\KaraFunPlayer.exe")
                proc.WaitForInputIdle()
                Dim hWnd As Long
                hWnd = FindWindow("TPlayFrm", "KaraFun Player")
                If hWnd <> 0 Then
                    SetParent(hWnd, Me.PAN_KARAFUNPLAYER.Handle)
                    SendMessage(hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
                End If
    End sub
    Jusque là, pas de problème.

    Par contre, si je fait un cliqué-glisser de ma fenêtre karafun, elle disparait et je suis obligé de fermer lapplication et de la réouvrir pour que KµaraFun soit à nouveau à sa place.


    Il m'a été conseillé de supprimer la bordure et de maximiser Karafun mais karafun player ne possède pas ces attribus donc impossible de jouer là dessus

    Ma question est donc la suivante : Est-il possible d'empêcher cette fenêtre de disparaitre de mon panel ?

    Merci par avance pour vos réponses.

    @+ Martipit

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Essaie d'ajouter cela dans le code de ta fenêtre :
    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
     
        Protected Overrides Sub WndProc(ByRef m As Message)
            'Pour empêcher le déplacement de la fenêtre
            Const WM_NCLBUTTONDOWN As Integer = 161
            Const WM_SYSCOMMAND As Integer = 274
            Const HTCAPTION As Integer = 2
            Const SC_MOVE As Integer = 61456
            If (m.Msg = WM_SYSCOMMAND) AndAlso (m.WParam.ToInt32() = SC_MOVE) Then
                Return
            End If
            If (m.Msg = WM_NCLBUTTONDOWN) AndAlso (m.WParam.ToInt32() = HTCAPTION) Then
                Return
            End If
            MyBase.WndProc(m)
        End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Par défaut
    Salut Midevaux

    J'ai pris ton code et je l'ai copié tel quel dans mon programme.

    Malheureusement, si je clique et que je glisse le programme KaraFun, j'obtiens toujours la même chos, à savoir quel'a fenêtre disparait.

    Mon avis, je n'ai pas du faire tout comme il faut

    Pourrais-tu m'apporter des précisions

    @+ Martipit

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Le code envoyé ne concerne que ta propre fenêtre et en aucun cas ne peut interagir sur un programme externe.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 135
    Par défaut
    ok.

    Donc quand je clique et que je glisse la fenetre Karfun qui se trouve affiché dans mon panel, j'agis sur mon programme externe. c'est bien cela?

    Dans ce cas, que fait la sub que tu m'as envoyé ?

    Si c'est comme tu me l'indique, dans ce cas, je vais surement ditre une annerire, mais il me faudrait un timer qui verifie en permanence la postion de la fenetre karafun et si elle n'est pas à sa place, il la repositionne...

    Je ne comprend pas tout là... je le répète, je ne suis que débutant.

    Qu'en pense tu ?

    Merci à toi de te pencher sur mon soucis...

    @+ Martipit

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Je pensais initialement que c'est ta propre fenêtre que tu souhaitais verrouiller et non le programme externe que tu as intégré.

    Effectivement tu ne peux modifier les fonctionnalités du programme externe Karafun. A toi de d'adapter.

Discussions similaires

  1. Comment éviter que mon annimation rame
    Par arnaudperfect dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 08/02/2009, 21h54
  2. Réponses: 1
    Dernier message: 10/06/2008, 13h40
  3. [movie] Comment éviter que l'animation se répète
    Par pouette13 dans le forum MATLAB
    Réponses: 5
    Dernier message: 03/07/2007, 14h29
  4. Réponses: 3
    Dernier message: 05/11/2006, 20h57
  5. Comment éviter que google répete des mots qui sont dans la description du meta tag
    Par tese84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/09/2006, 07h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo