Bonjour,
Comment caster un IntPtr en Control?
Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
Je voudrais ensuite faire un truc du genre:
void SetParent (IntPtr MonParent)
{
Control.Parent = (Control) MonParent;
}
Comment faire?
Bonjour,
Comment caster un IntPtr en Control?
Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
Je voudrais ensuite faire un truc du genre:
void SetParent (IntPtr MonParent)
{
Control.Parent = (Control) MonParent;
}
Comment faire?
Bonjour,
Comment caster un IntPtr en Control?
Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
Je voudrais ensuite faire un truc du genre:
void SetParent (IntPtr MonParent)
{
Control.Parent = (Control) MonParent;
}
Comment faire?
Salut ! :O)
S'agit-il d'une fenêtre externe à ton application ?
Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
contrôle .NET..
Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
contenu dans ton application..
Que souhaites-tu faire en fin de compte ?
--
Cordialement
Yanick
MVP pour Visual Basic
"devkool" a écrit dans le message de
news:
> Bonjour,
>
> Comment caster un IntPtr en Control?
> Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
fenetre .
> Je voudrais ensuite faire un truc du genre:
>
>
> void SetParent (IntPtr MonParent)
> {
> Control.Parent = (Control) MonParent;
> }
>
> Comment faire?
Salut ! :O)
S'agit-il d'une fenêtre externe à ton application ?
Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
contrôle .NET..
Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
contenu dans ton application..
Que souhaites-tu faire en fin de compte ?
--
Cordialement
Yanick
MVP pour Visual Basic
"devkool" <devkool@discussions.microsoft.com> a écrit dans le message de
news:E3AF52AE-6541-4374-9089-F2C6615EF110@microsoft.com...
> Bonjour,
>
> Comment caster un IntPtr en Control?
> Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
fenetre .
> Je voudrais ensuite faire un truc du genre:
>
>
> void SetParent (IntPtr MonParent)
> {
> Control.Parent = (Control) MonParent;
> }
>
> Comment faire?
Salut ! :O)
S'agit-il d'une fenêtre externe à ton application ?
Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
contrôle .NET..
Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
contenu dans ton application..
Que souhaites-tu faire en fin de compte ?
--
Cordialement
Yanick
MVP pour Visual Basic
"devkool" a écrit dans le message de
news:
> Bonjour,
>
> Comment caster un IntPtr en Control?
> Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
fenetre .
> Je voudrais ensuite faire un truc du genre:
>
>
> void SetParent (IntPtr MonParent)
> {
> Control.Parent = (Control) MonParent;
> }
>
> Comment faire?
Oui c'est une fenetre externe à mon application.
Ce que je veux faire est tres simple:
J'ai un UserControl C# (écrit pour COM) et je veux l'afficher dans une
MFC.
Pour faire ca, j'essaie de passer mon HWND de ma View MFC à mon
C# pour dire mais je n' arrive pas à l'afficher!
J'ai juste réussi à compiler en faisant (UserControl coté C#)
void SetParent (IntPtr MonParent)
{
Parent = FromHandle( MonParent);
Show();
}
coté MFC(View)
//CoCreateInstance(.....MonPointeurCOM);
MonPointeurCOM->SetParent( (int) m_pWnd);
Mais rien ne s'affiche et pourtant j'arrive à dialoguer avec mon
avec d'autre fonction...!!!
"Zoury" a écrit :
> Salut ! :O)
>
> S'agit-il d'une fenêtre externe à ton application ?
>
> Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
> contrôle .NET..
> Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
> contenu dans ton application..
>
> Que souhaites-tu faire en fin de compte ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
> "devkool" a écrit dans le message de
> news:
> > Bonjour,
> >
> > Comment caster un IntPtr en Control?
> > Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
> fenetre .
> > Je voudrais ensuite faire un truc du genre:
> >
> >
> > void SetParent (IntPtr MonParent)
> > {
> > Control.Parent = (Control) MonParent;
> > }
> >
> > Comment faire?
>
>
>
Oui c'est une fenetre externe à mon application.
Ce que je veux faire est tres simple:
J'ai un UserControl C# (écrit pour COM) et je veux l'afficher dans une
MFC.
Pour faire ca, j'essaie de passer mon HWND de ma View MFC à mon
C# pour dire mais je n' arrive pas à l'afficher!
J'ai juste réussi à compiler en faisant (UserControl coté C#)
void SetParent (IntPtr MonParent)
{
Parent = FromHandle( MonParent);
Show();
}
coté MFC(View)
//CoCreateInstance(.....MonPointeurCOM);
MonPointeurCOM->SetParent( (int) m_pWnd);
Mais rien ne s'affiche et pourtant j'arrive à dialoguer avec mon
avec d'autre fonction...!!!
"Zoury" a écrit :
> Salut ! :O)
>
> S'agit-il d'une fenêtre externe à ton application ?
>
> Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
> contrôle .NET..
> Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
> contenu dans ton application..
>
> Que souhaites-tu faire en fin de compte ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
> "devkool" <devkool@discussions.microsoft.com> a écrit dans le message de
> news:E3AF52AE-6541-4374-9089-F2C6615EF110@microsoft.com...
> > Bonjour,
> >
> > Comment caster un IntPtr en Control?
> > Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
> fenetre .
> > Je voudrais ensuite faire un truc du genre:
> >
> >
> > void SetParent (IntPtr MonParent)
> > {
> > Control.Parent = (Control) MonParent;
> > }
> >
> > Comment faire?
>
>
>
Oui c'est une fenetre externe à mon application.
Ce que je veux faire est tres simple:
J'ai un UserControl C# (écrit pour COM) et je veux l'afficher dans une
MFC.
Pour faire ca, j'essaie de passer mon HWND de ma View MFC à mon
C# pour dire mais je n' arrive pas à l'afficher!
J'ai juste réussi à compiler en faisant (UserControl coté C#)
void SetParent (IntPtr MonParent)
{
Parent = FromHandle( MonParent);
Show();
}
coté MFC(View)
//CoCreateInstance(.....MonPointeurCOM);
MonPointeurCOM->SetParent( (int) m_pWnd);
Mais rien ne s'affiche et pourtant j'arrive à dialoguer avec mon
avec d'autre fonction...!!!
"Zoury" a écrit :
> Salut ! :O)
>
> S'agit-il d'une fenêtre externe à ton application ?
>
> Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
> contrôle .NET..
> Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
> contenu dans ton application..
>
> Que souhaites-tu faire en fin de compte ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
> "devkool" a écrit dans le message de
> news:
> > Bonjour,
> >
> > Comment caster un IntPtr en Control?
> > Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
> fenetre .
> > Je voudrais ensuite faire un truc du genre:
> >
> >
> > void SetParent (IntPtr MonParent)
> > {
> > Control.Parent = (Control) MonParent;
> > }
> >
> > Comment faire?
>
>
>
As-tu essayé l'API SetParent() ?
L'exemple suivant créer un bouton par dessus le bouton "Démarrer" de
windows. L'application se ferme lorsque l'on clique dessus.
//**
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
namespace CustomButtonProject
{
public sealed class MainModule
{
private static Button button1 = null;
private static Boolean bExit = false;
[DllImport("user32")]
private static extern Int32 SetParent (
IntPtr hWndChild,
IntPtr hWndNewParent);
[DllImport("user32")]
private static extern IntPtr FindWindow (
String lpClassName,
String lpWindowName);
[STAThread]
static void Main()
{
// retrouve le handle du systray (barre de tâche)
IntPtr hTray = FindWindow("Shell_TrayWnd", null);
if (!hTray.Equals(IntPtr.Zero))
{
// instancie notre bouton
button1 = new Button();
button1.Size = new Size(120, 18);
button1.Location = new Point(0,0);
button1.Text = "Quitter";
button1.Click += new EventHandler(button1_Click);
// ajoute le bouton sur la barre de tâche
SetParent(button1.Handle, hTray);
}
// on attend que la fin du programme
while (!bExit)
{
// donne un break au processeur
Thread.Sleep(10);
// permet à Windows d'exécuter ses fils de messages
Application.DoEvents();
};
}
private static void button1_Click(object sender, System.EventArgs e)
{
bExit = true;
MessageBox.Show("On quitte !");
}
}
}
//**
--
Cordialement
Yanick
MVP pour Visual Basic
"devkool" a écrit dans le message de
news:
> Oui c'est une fenetre externe à mon application.
> Ce que je veux faire est tres simple:
> J'ai un UserControl C# (écrit pour COM) et je veux l'afficher dans une
view
> MFC.
> Pour faire ca, j'essaie de passer mon HWND de ma View MFC à mon
UserControl
> C# pour dire mais je n' arrive pas à l'afficher!
>
> J'ai juste réussi à compiler en faisant (UserControl coté C#)
>
> void SetParent (IntPtr MonParent)
> {
> Parent = FromHandle( MonParent);
> Show();
> }
>
> coté MFC(View)
> //CoCreateInstance(.....MonPointeurCOM);
> MonPointeurCOM->SetParent( (int) m_pWnd);
>
>
> Mais rien ne s'affiche et pourtant j'arrive à dialoguer avec mon
UserControl
> avec d'autre fonction...!!!
>
> "Zoury" a écrit :
>
> > Salut ! :O)
> >
> > S'agit-il d'une fenêtre externe à ton application ?
> >
> > Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
> > contrôle .NET..
> > Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
> > contenu dans ton application..
> >
> > Que souhaites-tu faire en fin de compte ?
> >
> > --
> > Cordialement
> > Yanick
> > MVP pour Visual Basic
> > "devkool" a écrit dans le message de
> > news:
> > > Bonjour,
> > >
> > > Comment caster un IntPtr en Control?
> > > Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
> > fenetre .
> > > Je voudrais ensuite faire un truc du genre:
> > >
> > >
> > > void SetParent (IntPtr MonParent)
> > > {
> > > Control.Parent = (Control) MonParent;
> > > }
> > >
> > > Comment faire?
> >
> >
> >
As-tu essayé l'API SetParent() ?
L'exemple suivant créer un bouton par dessus le bouton "Démarrer" de
windows. L'application se ferme lorsque l'on clique dessus.
//**
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
namespace CustomButtonProject
{
public sealed class MainModule
{
private static Button button1 = null;
private static Boolean bExit = false;
[DllImport("user32")]
private static extern Int32 SetParent (
IntPtr hWndChild,
IntPtr hWndNewParent);
[DllImport("user32")]
private static extern IntPtr FindWindow (
String lpClassName,
String lpWindowName);
[STAThread]
static void Main()
{
// retrouve le handle du systray (barre de tâche)
IntPtr hTray = FindWindow("Shell_TrayWnd", null);
if (!hTray.Equals(IntPtr.Zero))
{
// instancie notre bouton
button1 = new Button();
button1.Size = new Size(120, 18);
button1.Location = new Point(0,0);
button1.Text = "Quitter";
button1.Click += new EventHandler(button1_Click);
// ajoute le bouton sur la barre de tâche
SetParent(button1.Handle, hTray);
}
// on attend que la fin du programme
while (!bExit)
{
// donne un break au processeur
Thread.Sleep(10);
// permet à Windows d'exécuter ses fils de messages
Application.DoEvents();
};
}
private static void button1_Click(object sender, System.EventArgs e)
{
bExit = true;
MessageBox.Show("On quitte !");
}
}
}
//**
--
Cordialement
Yanick
MVP pour Visual Basic
"devkool" <devkool@discussions.microsoft.com> a écrit dans le message de
news:DA46D50D-1B1B-4CDE-BA2A-A5EEB3AC34EF@microsoft.com...
> Oui c'est une fenetre externe à mon application.
> Ce que je veux faire est tres simple:
> J'ai un UserControl C# (écrit pour COM) et je veux l'afficher dans une
view
> MFC.
> Pour faire ca, j'essaie de passer mon HWND de ma View MFC à mon
UserControl
> C# pour dire mais je n' arrive pas à l'afficher!
>
> J'ai juste réussi à compiler en faisant (UserControl coté C#)
>
> void SetParent (IntPtr MonParent)
> {
> Parent = FromHandle( MonParent);
> Show();
> }
>
> coté MFC(View)
> //CoCreateInstance(.....MonPointeurCOM);
> MonPointeurCOM->SetParent( (int) m_pWnd);
>
>
> Mais rien ne s'affiche et pourtant j'arrive à dialoguer avec mon
UserControl
> avec d'autre fonction...!!!
>
> "Zoury" a écrit :
>
> > Salut ! :O)
> >
> > S'agit-il d'une fenêtre externe à ton application ?
> >
> > Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
> > contrôle .NET..
> > Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
> > contenu dans ton application..
> >
> > Que souhaites-tu faire en fin de compte ?
> >
> > --
> > Cordialement
> > Yanick
> > MVP pour Visual Basic
> > "devkool" <devkool@discussions.microsoft.com> a écrit dans le message de
> > news:E3AF52AE-6541-4374-9089-F2C6615EF110@microsoft.com...
> > > Bonjour,
> > >
> > > Comment caster un IntPtr en Control?
> > > Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
> > fenetre .
> > > Je voudrais ensuite faire un truc du genre:
> > >
> > >
> > > void SetParent (IntPtr MonParent)
> > > {
> > > Control.Parent = (Control) MonParent;
> > > }
> > >
> > > Comment faire?
> >
> >
> >
As-tu essayé l'API SetParent() ?
L'exemple suivant créer un bouton par dessus le bouton "Démarrer" de
windows. L'application se ferme lorsque l'on clique dessus.
//**
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;
namespace CustomButtonProject
{
public sealed class MainModule
{
private static Button button1 = null;
private static Boolean bExit = false;
[DllImport("user32")]
private static extern Int32 SetParent (
IntPtr hWndChild,
IntPtr hWndNewParent);
[DllImport("user32")]
private static extern IntPtr FindWindow (
String lpClassName,
String lpWindowName);
[STAThread]
static void Main()
{
// retrouve le handle du systray (barre de tâche)
IntPtr hTray = FindWindow("Shell_TrayWnd", null);
if (!hTray.Equals(IntPtr.Zero))
{
// instancie notre bouton
button1 = new Button();
button1.Size = new Size(120, 18);
button1.Location = new Point(0,0);
button1.Text = "Quitter";
button1.Click += new EventHandler(button1_Click);
// ajoute le bouton sur la barre de tâche
SetParent(button1.Handle, hTray);
}
// on attend que la fin du programme
while (!bExit)
{
// donne un break au processeur
Thread.Sleep(10);
// permet à Windows d'exécuter ses fils de messages
Application.DoEvents();
};
}
private static void button1_Click(object sender, System.EventArgs e)
{
bExit = true;
MessageBox.Show("On quitte !");
}
}
}
//**
--
Cordialement
Yanick
MVP pour Visual Basic
"devkool" a écrit dans le message de
news:
> Oui c'est une fenetre externe à mon application.
> Ce que je veux faire est tres simple:
> J'ai un UserControl C# (écrit pour COM) et je veux l'afficher dans une
view
> MFC.
> Pour faire ca, j'essaie de passer mon HWND de ma View MFC à mon
UserControl
> C# pour dire mais je n' arrive pas à l'afficher!
>
> J'ai juste réussi à compiler en faisant (UserControl coté C#)
>
> void SetParent (IntPtr MonParent)
> {
> Parent = FromHandle( MonParent);
> Show();
> }
>
> coté MFC(View)
> //CoCreateInstance(.....MonPointeurCOM);
> MonPointeurCOM->SetParent( (int) m_pWnd);
>
>
> Mais rien ne s'affiche et pourtant j'arrive à dialoguer avec mon
UserControl
> avec d'autre fonction...!!!
>
> "Zoury" a écrit :
>
> > Salut ! :O)
> >
> > S'agit-il d'une fenêtre externe à ton application ?
> >
> > Si oui, tu ne peux pas convertir le handle reçu (IntPtr) en instance de
> > contrôle .NET..
> > Sinon, tu devras comparer ton handle avec ceux tes fenêtres/contrôles
> > contenu dans ton application..
> >
> > Que souhaites-tu faire en fin de compte ?
> >
> > --
> > Cordialement
> > Yanick
> > MVP pour Visual Basic
> > "devkool" a écrit dans le message de
> > news:
> > > Bonjour,
> > >
> > > Comment caster un IntPtr en Control?
> > > Je passe un HWND à une fonction C# ->IntPtr. C'est un handle sur une
> > fenetre .
> > > Je voudrais ensuite faire un truc du genre:
> > >
> > >
> > > void SetParent (IntPtr MonParent)
> > > {
> > > Control.Parent = (Control) MonParent;
> > > }
> > >
> > > Comment faire?
> >
> >
> >