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

Windows Forms Discussion :

Sous-classement d'une RichTextBox


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Sous-classement d'une RichTextBox
    Bonjour,

    Je souhaite sous-classer un contrôle RichTextBox. J'ai le bon Handle du contrôle mais je n'arrive pas à récupérer dans ma sous-classe les messages envoyé par le contrôle lorsque je sous-classe la RTB d'une application autre que celle qui prend en charge le sous-classement.

    Le code ci-dessous fonctionne bien si la RTB est crée par mon application mais ne fonctionne plus lorsque je sous-classe le contrôle d'une autre application.

    Quelqu'un a-t-il une idée, une piste ou un bout de code qui fonctionne?

    Merci d'avance!

    Thomas

    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
    22
    23
     
    'construction de la sous-classe
    '/////////////////////////////
    dim z as IntPtr = &H13116E
    PChat = New PChatSubClass(z)
    '/////////////////////////////
     
     
    Public Class PChatSubClass
        Inherits System.Windows.Forms.NativeWindow
     
        Public Sub New(ByVal pWindowHandle As IntPtr)
            MyBase.AssignHandle(pWindowHandle)
        End Sub
     
    'WndProc devrait être activé à chaque messages envoyé par le controle RTB.
    '/////////////////////////////
        Protected Overrides Sub WndProc(ByRef uMsg As System.Windows.Forms.Message)
     
        End Sub
    '/////////////////////////////
     
    End Class

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    En fait, il n'est pas possible de sous-classer un objet en dehors du processus dont il dépend.

    The reason for this rule is simple: Win32 processes have separate address spaces. A window procedure has an address in a particular process. In a different process, that address does not contain the same window procedure. As a result, substituting an address from one process with an address from another process does not provide the desired result, so the 32-bit versions of Windows do not allow this substitution (that is, subclassing from a different process) to take place. The SetWindowLong and SetClassLong functions prevent this type of subclassing. You cannot subclass a window or class that is in another process. End of story.
    Subclass (hook) external programs - VBForums

    La méthode la plus simple est alors l'injection d'une dll dans le processus cible et qui pourra alors prendre en charge le sous-classement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rechercher une sous chaine dans une chaine
    Par annedjomo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/02/2005, 10h36
  2. Rechercher une sous chaine dans une chaine
    Par Oluha dans le forum ASP
    Réponses: 4
    Dernier message: 03/02/2005, 14h39
  3. Equivalent sous Oracle d une option SQLServer
    Par Pasiphae dans le forum Oracle
    Réponses: 3
    Dernier message: 19/11/2004, 17h30
  4. [ORACLE][SQL] procedure sous delphi avec une requete SQL
    Par nivet dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/11/2004, 13h43
  5. Extraction de sous-chaine dans une chaine
    Par ma2th dans le forum C
    Réponses: 7
    Dernier message: 07/05/2004, 12h42

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