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

7 réponses

1 2
Avatar
Christian HUBERT-HUGOUD- Xtrem7
Peut-être peux-tu utiliser l'API SetParent ?

Cordialement

Christian Hubert-Hugoud

"Bertrand" a écrit dans le message de
news:
> 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:
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.



Si vous faites cela uniquement pour pouvoir vous servir de
CreateControl, vous risquez d'être très déçu. Tout va nécessairement se
passer dans une DLL et intégrer une DLL basée sur les MFC avec une autre
application non MFC risque d'être délicat. Vous me dîtes que vous avez
moins d'expérience en VC++ qu'en VB6, je vous déconseille donc cette
approche.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bertrand
Avez vous éventuellement un exemple ou lien que je puisse tester pour voir
ce qu'il est possible de faire ?



"Patrick Philippot" a écrit dans le
message de news:
Bertrand wrote:
> 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.

Si vous faites cela uniquement pour pouvoir vous servir de
CreateControl, vous risquez d'être très déçu. Tout va nécessairement se
passer dans une DLL et intégrer une DLL basée sur les MFC avec une autre
application non MFC risque d'être délicat. Vous me dîtes que vous avez
moins d'expérience en VC++ qu'en VB6, je vous déconseille donc cette
approche.

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




Avatar
Patrick Philippot
Bertrand wrote:
Avez vous éventuellement un exemple ou lien que je puisse tester pour
voir ce qu'il est possible de faire ?



Non mais comme cela a été dit, l'opération ne doit pas être bien
compliquée. Il faut créer la form, utiliser l'API SetParent pour
indiquer de quelle fenêtre cette form doit maintenant être la fille et
ensuite gérer les problèmes d'intendance:

- supprimer la bordure
- réagir aux événements de retaillage pour adapter en permanence la
taille de la fenêtre à la surface client de la fenêtre hôte
- ...

Pour SetParent, vous aurez besoin du handle de la fenêtre hôte. Vous
pouvez le récupérer avec FindWindow. Ou peut-être y a-t-il un moyen plus
direct avec Navision.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bertrand
ok je vais étudier ceci.
merci pour vos réponses




"Patrick Philippot" a écrit dans le
message de news:
Bertrand wrote:
> Avez vous éventuellement un exemple ou lien que je puisse tester pour
> voir ce qu'il est possible de faire ?

Non mais comme cela a été dit, l'opération ne doit pas être bien
compliquée. Il faut créer la form, utiliser l'API SetParent pour
indiquer de quelle fenêtre cette form doit maintenant être la fille et
ensuite gérer les problèmes d'intendance:

- supprimer la bordure
- réagir aux événements de retaillage pour adapter en permanence la
taille de la fenêtre à la surface client de la fenêtre hôte
- ...

Pour SetParent, vous aurez besoin du handle de la fenêtre hôte. Vous
pouvez le récupérer avec FindWindow. Ou peut-être y a-t-il un moyen plus
direct avec Navision.

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




Avatar
thebeb
Bonjour

j'ai réussi à créer une fenetre fille pour le pgrm navision grace aux API
findwindow set set parent.

par contre, comme il faut mettre la fenetre fille en modal, je n'ai plus
accès à la fenetre parent.

de plus, toujours comparé à C++, la fonction CreateControl permet de
spécifier un container de type RECT pour placer le controle attaché.
Existe - t-il un moyen similaire en VB ?

merci




"Patrick Philippot" a écrit dans le
message de news:
Bertrand wrote:
> Avez vous éventuellement un exemple ou lien que je puisse tester pour
> voir ce qu'il est possible de faire ?

Non mais comme cela a été dit, l'opération ne doit pas être bien
compliquée. Il faut créer la form, utiliser l'API SetParent pour
indiquer de quelle fenêtre cette form doit maintenant être la fille et
ensuite gérer les problèmes d'intendance:

- supprimer la bordure
- réagir aux événements de retaillage pour adapter en permanence la
taille de la fenêtre à la surface client de la fenêtre hôte
- ...

Pour SetParent, vous aurez besoin du handle de la fenêtre hôte. Vous
pouvez le récupérer avec FindWindow. Ou peut-être y a-t-il un moyen plus
direct avec Navision.

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




Avatar
Patrick Philippot
thebeb wrote:
j'ai réussi à créer une fenetre fille pour le pgrm navision grace aux
API findwindow set set parent.

par contre, comme il faut mettre la fenetre fille en modal, je n'ai
plus accès à la fenetre parent.



Que veut dire "plus accès à"? Vous avez le handle de cette fenêtre qui
n'est plus qu'un simple conteneur de votre fenêtre "fonctionnelle".
Qu'est-ce que vous n'arrivez pas à faire?

de plus, toujours comparé à C++, la fonction CreateControl permet de
spécifier un container de type RECT pour placer le controle attaché.
Existe - t-il un moyen similaire en VB ?



Comme je le disais, une fois la relation créée avec la fenêtre parent,
vous gérez le redimensionnement de la fenêtre fille comme vous le
voulez. Si vous souhaitez qu'elle n'occupe qu'une partie de la surface
client de la fenêtre parent, libre à vous. Gérez sa position et sa
taille en conséquence.

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