OVH Cloud OVH Cloud

Equivalent fonction C++ en VB

17 réponses
Avatar
Bertrand
Bonjour

existe t-il qqchose de similaire à la fonction c++ ci dessous en vb6 ou .net

+ d'info à
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.createcontrol.asp

Use this member function to create an ActiveX control that will be
represented in the MFC program by a CWnd object.

BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);

Merci

10 réponses

1 2
Avatar
Patrick Philippot
Bertrand wrote:
existe t-il qqchose de similaire à la fonction c++ ci dessous en vb6
ou .net

+ d'info à
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.createcontrol.asp

Use this member function to create an ActiveX control that will be
represented in the MFC program by a CWnd object.

BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);



Bonjour,

Comme sa doc l'indique, cette méthode fait directement référence à
plusieurs classes des MFC. Je ne vois pas comment on pourrait obtenir
l'équivalent sans utiliser les MFC, ce qui est bien sûr impossible en
VB. Ce code n'a d'intérêt que dans le monde VC++/MFC.

Je ne vois pas très bien l'objet de la question. Vous cherchez à faire
quoi, au juste?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bertrand
Bonjour

Je cherche à intégrer des activex pour du développement dans l'ERP Microsoft
Navision.

j'ai un exemple en C++, mais je connais mieux VB donc je cherchais pour le
moment dans cette voie.


Je ne vois pas comment on pourrait obtenir
l'équivalent sans utiliser les MFC, ce qui est bien sûr impossible en
VB.



je ne savais pas.
je crois donc que ma recherche va se terminer là.

merci


"Patrick Philippot" a écrit dans le
message de news:%
Bertrand wrote:
> existe t-il qqchose de similaire à la fonction c++ ci dessous en vb6
> ou .net
>
> + d'info à
>


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.createcontrol.asp
>
> Use this member function to create an ActiveX control that will be
> represented in the MFC program by a CWnd object.
>
> BOOL CreateControl(
> LPCTSTR pszClass,
> LPCTSTR pszWindowName,
> DWORD dwStyle,
> const RECT& rect,
> CWnd* pParentWnd,
> UINT nID,
> CFile* pPersist = NULL,
> BOOL bStorage = FALSE,
> BSTR bstrLicKey = NULL
> );

Bonjour,

Comme sa doc l'indique, cette méthode fait directement référence à
plusieurs classes des MFC. Je ne vois pas comment on pourrait obtenir
l'équivalent sans utiliser les MFC, ce qui est bien sûr impossible en
VB. Ce code n'a d'intérêt que dans le monde VC++/MFC.

Je ne vois pas très bien l'objet de la question. Vous cherchez à faire
quoi, au juste?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr




Avatar
ng
Salut,

S'il est jsute question d'ajouter un activex dynamyquement il y a
CreateObject() et MaForm.Controls.Add().

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Bertrand wrote:
Bonjour

Je cherche à intégrer des activex pour du développement dans l'ERP
Microsoft Navision.

j'ai un exemple en C++, mais je connais mieux VB donc je cherchais
pour le moment dans cette voie.


Je ne vois pas comment on pourrait obtenir
l'équivalent sans utiliser les MFC, ce qui est bien sûr impossible en
VB.



je ne savais pas.
je crois donc que ma recherche va se terminer là.

merci


"Patrick Philippot" a écrit dans le
message de news:%
Bertrand wrote:
existe t-il qqchose de similaire à la fonction c++ ci dessous en vb6
ou .net

+ d'info à





http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cwnd.3a3a.createcontrol.asp

Use this member function to create an ActiveX control that will be
represented in the MFC program by a CWnd object.

BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);



Bonjour,

Comme sa doc l'indique, cette méthode fait directement référence à
plusieurs classes des MFC. Je ne vois pas comment on pourrait obtenir
l'équivalent sans utiliser les MFC, ce qui est bien sûr impossible en
VB. Ce code n'a d'intérêt que dans le monde VC++/MFC.

Je ne vois pas très bien l'objet de la question. Vous cherchez à
faire quoi, au juste?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr




Avatar
Patrick Philippot
Bertrand wrote:
Je cherche à intégrer des activex pour du développement dans l'ERP
Microsoft Navision.

j'ai un exemple en C++, mais je connais mieux VB donc je cherchais
pour le moment dans cette voie.



J'avoue que je ne comprends toujours pas bien. Pour pouvoir utiliser un
contrôle ActiveX, il faut un ActiveX Control Container. Il peut être
implémenté en VB, en C++,... peu importe. D'après ce que je lis là:
http://www.nowecor.de/users/stephan/index.php?page=navision/ocxgeneral.htm,
une fois qu'un contrôle ActiveX est enregistré sur un système, Navision
(Financials) peut l'utiliser. Donc soit Navision sait accueillir des
contrôles ActiveX, soit il ne sait pas. Dans le deuxième cas, peut-être
demande-t-il l'implémentation d'une interface particulière?

Je n'en connais pas assez sur Navision pour pouvoir vous aider mais si
vous précisez le problème, nous trouverons peut-être une solution.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bertrand
Navision supporte uniquement les OCX non graphique.

moi je cherche à implémenter un viewer TIFF dans navision.

une premiere solution est de créer une DLL qui implémente un navigateur IE.
puis cette on l'incorpore à navision grace aux handler et à la fameuse
fonction createcontrol.
on obtient un browser in-process lié à navision.
puis c'est le browser qui se charge de lire le TIFF


mais les capacités ce ceci sont limitées : pas de zoom, pas de rotation,
......ect

donc j'essaie de trouver une autre solution.







"Patrick Philippot" a écrit dans le
message de news:
Bertrand wrote:
> Je cherche à intégrer des activex pour du développement dans l'ERP
> Microsoft Navision.
>
> j'ai un exemple en C++, mais je connais mieux VB donc je cherchais
> pour le moment dans cette voie.

J'avoue que je ne comprends toujours pas bien. Pour pouvoir utiliser un
contrôle ActiveX, il faut un ActiveX Control Container. Il peut être
implémenté en VB, en C++,... peu importe. D'après ce que je lis là:



http://www.nowecor.de/users/stephan/index.php?page=navision/ocxgeneral.htm,
une fois qu'un contrôle ActiveX est enregistré sur un système, Navision
(Financials) peut l'utiliser. Donc soit Navision sait accueillir des
contrôles ActiveX, soit il ne sait pas. Dans le deuxième cas, peut-être
demande-t-il l'implémentation d'une interface particulière?

Je n'en connais pas assez sur Navision pour pouvoir vous aider mais si
vous précisez le problème, nous trouverons peut-être une solution.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr




Avatar
Patrick Philippot
Bertrand wrote:
Navision supporte uniquement les OCX non graphique.

moi je cherche à implémenter un viewer TIFF dans navision.



Rien n'empêche de sélectionner un quelconque outil de visualisation des
fichiers TIFF (le marché en regorge) et de créer un OCX intermédiaire
sans interface graphique mais qui serait capable d'ouvrir une fenêtre
indépendante dans laquelle on utiliserait l'outil en question. Ça me
paraît tout à fait simple à réaliser.

Vous créez en VB un projet de type ActiveX Control sans interface
utilisateur (invisible at runtime). Ce contrôle expose une méthode qui
prend en paramètre le nom du fichier à afficher. Sur appel de la
méthode, le contrôle ouvre une feuille VB dans laquelle le "vrai" OCX
est utilisé et on charge le fichier dont on a reçu le nom en argument.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bertrand
je suis d'accord sur le principe, mais le défi est que cela doit fonctionner
in-process, donc le viewer doit etre intégrer dans une form de navision et
non dans une fenêtre à part..

c'est la que je "peche" car je ne trouve rien en VB qui puisse faire comme
en C++ avec createcontrol (et donc se rattacher à un handler). je ne connais
pas trop dans ce domaine mais je crois que c'est l'utilisation d'un wrapper.


"Patrick Philippot" a écrit dans le
message de news:eT%
Bertrand wrote:
> Navision supporte uniquement les OCX non graphique.
>
> moi je cherche à implémenter un viewer TIFF dans navision.

Rien n'empêche de sélectionner un quelconque outil de visualisation des
fichiers TIFF (le marché en regorge) et de créer un OCX intermédiaire
sans interface graphique mais qui serait capable d'ouvrir une fenêtre
indépendante dans laquelle on utiliserait l'outil en question. Ça me
paraît tout à fait simple à réaliser.

Vous créez en VB un projet de type ActiveX Control sans interface
utilisateur (invisible at runtime). Ce contrôle expose une méthode qui
prend en paramètre le nom du fichier à afficher. Sur appel de la
méthode, le contrôle ouvre une feuille VB dans laquelle le "vrai" OCX
est utilisé et on charge le fichier dont on a reçu le nom en argument.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr




Avatar
Patrick Philippot
Bertrand wrote:
je suis d'accord sur le principe, mais le défi est que cela doit
fonctionner in-process, donc le viewer doit etre intégrer dans une
form de navision et non dans une fenêtre à part..



Rien n'empêche non plus de créer la nouvelle fenêtre en tant que fenêtre
fille d'une fenêtre spécifique, déjà ouverte, de Navision. Cela suppose
la manipulation des APIs Win32 mais ne présente a priori pas de
difficulté particulière.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bertrand
> créer la nouvelle fenêtre en tant que fenêtre fille d'une fenêtre


spécifique

non il me faut vraiment de l'intégré (genre imgedit).
absolument 1 seule fenetre.

je crois que je vais passer sur C++ a mon avis, dommage pour VB ca aurait
été plus rapide à construire.

c'est quand meme dommage qu'il n'y ai pas cette fonction CreateControl en
VB6.

merci pour vos réponses.



"Patrick Philippot" a écrit dans le
message de news:
Bertrand wrote:
> je suis d'accord sur le principe, mais le défi est que cela doit
> fonctionner in-process, donc le viewer doit etre intégrer dans une
> form de navision et non dans une fenêtre à part..

Rien n'empêche non plus de créer la nouvelle fenêtre en tant que fenêtre
fille d'une fenêtre spécifique, déjà ouverte, de Navision. Cela suppose
la manipulation des APIs Win32 mais ne présente a priori pas de
difficulté particulière.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr




Avatar
Patrick Philippot
Bertrand wrote:
créer la nouvelle fenêtre en tant que fenêtre fille d'une fenêtre
spécifique



non il me faut vraiment de l'intégré (genre imgedit).
absolument 1 seule fenetre.



1 seule fenêtre ne veut pas dire grand-chose, en fait. Vous voulez dire
que visuellement, cela doit être du SDI? Comme dans Notepad. Ce n'est
pas un problème.

Ça sera intégré. Pour l'utilisateur, cela peut être complètement
transparent si la fenêtre fille utilise toute la surface client de la
fenêtre Navision. Il n'y a pas, structurellement, de différence avec ce
qui se passerait si la window procedure de la fenêtre Navision créait
elle-même cette fenêtre fille. Simplement, la création de la fenêtre est
déléguée au code de l'ActiveX Control "intermédiaire". Tout se passerait
dans le processus Navision. De toutes façons, il y a toujours une
fenêtre fille si on utilise un contrôle ActiveX.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
1 2