Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Convertir une ressource RT_DIALOG en HWND contenant ses enfants HWND

7 réponses
Avatar
Miel
Bonjour,

Je souhaiterai convertir un numéro de ressource en HWND .

J'utilise la fonction :
HWND hc=CreateDialog(
hInst,
MAKEINTRESOURCE(IDD_DIALOG1),
hWnd,
DialogProc
);
Mais ce n'est pas trés adapté.

Je souhaiterai ,créer un HWND contenant les controles selon disposés
dans la ressource IDD_DIALOG1.

La solution serait de copier controle par controle , mais je souhaite
que ce soit en automatique.

Merci de votre aide.

7 réponses

Avatar
Jerome
Miel wrote:
Bonjour,

Je souhaiterai convertir un numéro de ressource en HWND .

J'utilise la fonction :
HWND hc=CreateDialog(
hInst,
MAKEINTRESOURCE(IDD_DIALOG1),
hWnd,
DialogProc
);
Mais ce n'est pas trés adapté.

Je souhaiterai ,créer un HWND contenant les controles selon disposés
dans la ressource IDD_DIALOG1.

La solution serait de copier controle par controle , mais je souhaite
que ce soit en automatique.



C'est pas clair ton truc.
CreateDialog est bien fait pour créer une Dialog box à partir de la
resource. quel est le problème exactement ? pourquoi dis-tu "ce n'est
pas très adapté" ?
Avatar
Miel
Jerome a écrit :
Miel wrote:
Bonjour,

Je souhaiterai convertir un numéro de ressource en HWND .

J'utilise la fonction :
HWND hc=CreateDialog(
hInst,
MAKEINTRESOURCE(IDD_DIALOG1),
hWnd,
DialogProc
);
Mais ce n'est pas trés adapté.

Je souhaiterai ,créer un HWND contenant les controles selon disposés
dans la ressource IDD_DIALOG1.

La solution serait de copier controle par controle , mais je souhaite
que ce soit en automatique.



C'est pas clair ton truc.
CreateDialog est bien fait pour créer une Dialog box à partir de la
resource. quel est le problème exactement ? pourquoi dis-tu "ce n'est
pas très adapté" ?



Je souhaiterai créer un HWND à partir d'une ressource.
Sachant que le HWND n'est pas une boite de dialogue , c'est pour
l'incorporer dans un container.
Avatar
Jerome
Miel wrote:

Je souhaiterai créer un HWND à partir d'une ressource.
Sachant que le HWND n'est pas une boite de dialogue , c'est pour
l'incorporer dans un container.



Mais si c'est une resource de type RT_DIALOG, le HWND résultant ne peut
être qu'une boite de dialogue
Avatar
Miel
Jerome a écrit :
Miel wrote:

Je souhaiterai créer un HWND à partir d'une ressource.
Sachant que le HWND n'est pas une boite de dialogue , c'est pour
l'incorporer dans un container.



Mais si c'est une resource de type RT_DIALOG, le HWND résultant ne peut
être qu'une boite de dialogue



Mettre tous ce qui à dans la ressource RT_DIALOG dans le HWND
Avatar
Serge Paccalin
Le samedi 15 novembre 2008 à 20:12:51, Miel a écrit dans
fr.comp.os.ms-windows.programmation :

Jerome a écrit :
Miel wrote:

Je souhaiterai créer un HWND à partir d'une ressource.
Sachant que le HWND n'est pas une boite de dialogue , c'est pour
l'incorporer dans un container.



Mais si c'est une resource de type RT_DIALOG, le HWND résultant ne peut
être qu'une boite de dialogue



Mettre tous ce qui à dans la ressource RT_DIALOG dans le HWND



Je crois que j'ai fait un truc dans ce genre, il y a longtemps. C'était
une boîte de config avec une liste d'icônes à gauche, et une partie
droite qui changeait en fonction de l'icône sélectionnée. J'avais une
ressource DIALOG pour chaque partie droite possible.

De mémoire, je faisais un CreateDialog() invisible, puis un
EnumChildWindows() et SetParent() pour transférer tous les contrôles du
dialog vers la fenêtre définitive. Sous toutes réserves.

--
___________
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Avatar
Christian ASTOR
Miel wrote:

Mettre tous ce qui à dans la ressource RT_DIALOG dans le HWND



Il faut charger la structure DLGTEMPLATE ou DLGTEMPLATEEX
(FindResource() - LoadResource() - LockResource())
puis tout scanner avec notamment les DLGITEMTEMPLATE(EX) pour les contrôles
Mais c'est complexe (alignements) et ça revient à faire ce que fait
CreateDialogIndirectParam()
Avatar
Sylvain SF
Miel a écrit :

Je souhaiterai créer un HWND à partir d'une ressource.
Sachant que le HWND n'est pas une boite de dialogue , c'est pour
l'incorporer dans un container.



Mais si c'est une resource de type RT_DIALOG, le HWND résultant ne
peut être qu'une boite de dialogue



Mettre tous ce qui à dans la ressource RT_DIALOG dans le HWND



un HWND créé depuis un DITL (resource dialog et CreateDialog)
et un HNWD créé par code (CreateWindow) sont quasi-identiques,
ce qui change vraiment c'est le traitement que tu en fais,
insertion ou non dans un frame et traitement modal ou non,
tu es libre de faire ce qui est pertinent pour ton UI.

Sylvain.