ca y est j'ai ma fenetre, mais elle ne s'affiche pas corectement et en plus elle bloque tout !!! (obligé de faire Ctrl+alt+sup)
Version imprimable
ca y est j'ai ma fenetre, mais elle ne s'affiche pas corectement et en plus elle bloque tout !!! (obligé de faire Ctrl+alt+sup)
Donc voila j'ai toujours le probleme d'affichage.
Voici l'état de la bête.
Je vois pas le ligne pour la rendre indépendante, pour qu'elle se raffiche toute seule.
http://img143.imageshack.us/img143/4060/t3mh.jpg
Comment je peux faire ... Je trouve pas de code commenté pour savoir a quoi sert les lignes ...
ps : la fenetre est caché sous les bouton et tout du premier CDialog !!!
Montre moi le *.h de la classe qui est associé à ta boite de dialogue.
voilaCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // DllDialog.h : header file // ///////////////////////////////////////////////////////////////////////////// // CDllDialog dialog class CDllDialog : public CDialog { // Construction public: CDllDialog(CWnd* pParent = NULL); // standard constructor enum { IDD = IDD_SETUP }; protected: HICON m_hIcon; CToolTipCtrl m_tooltip; protected: virtual void DoDataExchange(CDataExchange* pDX); protected: virtual BOOL OnInitDialog(); afx_msg void OnCheckNormalisation(); afx_msg void OnCheckDetection(); DECLARE_MESSAGE_MAP() };
OK, et maintenant montre moi comment est-ce que tu l'affiches.
dans le cpp
et apres je fais :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 CDllDialog::CDllDialog(CWnd* pParent /*=NULL*/) : CDialog(CDllDialog::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDI_ICONE); } BOOL CDllDialog::OnInitDialog() { // TODO: Add your control notification handler code here CDialog::OnInitDialog(); // Définir l'icône de cette boîte de dialogue. L'infrastructure effectue cela automatiquement // lorsque la fenêtre principale de l'application n'est pas une boîte de dialogue SetIcon(m_hIcon, TRUE); // Définir une grande icône SetIcon(m_hIcon, FALSE); // Définir une petite icône // Create the ToolTip control. m_tooltip.Create(this); m_tooltip.Activate(TRUE); // assign tools to controls UpdateData(FALSE); return TRUE; // retourner TRUE, sauf si vous avez défini le focus sur un contrôle }
Code:
1
2
3
4
5
6 extern "C" void WINAPI AfxShowDlg(CWnd* pParent) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); CDllDialog dlg(pParent); dlg.DoModal(); }
Mais alors quel est le problème maintenant?
Enlève un peu le
dans AfxShowDlg()Code:
1
2 CWnd* pParent
Le probleme est que la fenetre s'affiche, mais elle bloque tout !!! J'ai pas la main sur elle, et j'ai pas la main sur la parent !!!
Je vient de tout testé et c'etait pas ca !!!
Où est-ce que tu appelles AfxShowDlg() dans quel méthode du programme client
je l'appelle au niveau de quant je crique sur le bouton steup de l'interface principale.
testé avec ou sans le this.Code:
1
2
3
4
5
6
7 void CAutoCollimationV1Dlg::OnBSetupTraitement() { // show DCAM standard features dialog AfxShowDlg(this); }
Je viens de tester un programme exemple et ça marche chez moi avec une apli MFC et une DLL regular avec sa boite dialogue.
Oui, ca ca marchais !!! Mais comment il faut faire pour ajouter dedans les boutons et tout ce que j'ai dans IDD_ETUP ? (c'est un dialog).
En fait ce que j'avais fais, c'est que j'ai créé une class avec le truc automatique. Et ca m'a fais une fenetre bloquante.
Par contre c'est pas comme dans le tutoriel, mais du coup je ne sais pas comment metttre mon interface dans la fenetre.
ça veut dire quoi?Citation:
...mettre mon interface dans la fenetre.
Mais c'est simple. A l'aide de l'éditeur de ressource tu ajoutes tes contrôles simplement par drag & drop sur ta boite de dialogue...Citation:
Oui, ca ca marchais !!! Mais comment il faut faire pour ajouter dedans les boutons et tout ce que j'ai dans IDD_ETUP ? (c'est un dialog).
Tu fais un design à main levée!!!
b'en justement, j'ai déja mon interface de faite.
Je l'ai appelé IDD_SETUP.
Le soucis est que dans la methode de création dynamique, je ne vois pas ou est précisé l'ajout du cdialog.
Moi j'ai qu'une fenetre vide.
IDC_SETUP != IDD_SETUP :?
Mais pourquoi cette différence.
IDD_SETUP s' est l'ID de ta boite de dialogue, et IDC_SETUP c'est QUOI??? ça vient d'où??? Et l'interface dont tu parles c'est quoi c'est une autre boite de dialogue ou un bouton ou un contrôle???Citation:
b'en justement, j'ai déja mon interface de faite.
Je l'ai appelé IDC_SETUP.
Je ne pige pas bien ton blème!!! :?
Si tu as crée ta boite de dialogue et si tu as placé des boutons dedans et si tu as associé une classe CDllDialog avec pour ID IDD_SETUP alors ça DOIT marcher en faisant un DoModal().
Pardon c'etait bien IDD_SETUP
En fait si je fais avec le createur de class, il me fait le tout, et il y a mon interface. Mais le probleme c'est que tout reste bloqué. je ne peux pas farmé, je ne peux pas accéder a l'autre fenetre.
Apres l'autre truc qui marche c'est si je fais avec le tutauriel de farscape sur les fenetre dynamique. La le probleme c'est que je ne sais pas ajouter mon interface dans la fenetre qu'il cré.
J'ai deux piste, mais les deux bloque.:(
J'ai été clair ou il vaux mieux que je recapitule le tout ?
je crois :D
Dans une DLL j'ai une interface.
Afin de la réaliser, je ai créé avec l'outil necessaire un paneau avec des bouton et tout le reste.
Si je cré ma classe DllDialog avec la classWizard, ca me fais tout, ca me met le panel. Lorsque je teste et que je clique sur le bouton(du projet principal) qui doit ouvrir l'interface, ca me l'ouvre, et ca bloque tout. Pour quitter l'apprication, il me faut faire ctl+alt+sup.
L'autre solution etait le DynamicDialog de farscape. Le probleme est que je n'arrive pas a ajouter mon paneau. Sinon pour l'instant quant je clique, j'ai un panneau vide. Je ne sais pas ou ajouter le paneau que j'ai fais.
J'ai deux solution, mais les deux sont bloqué.
voici la fonction extern que j'ai (que l'on m'a ... car je rame un peu :aie: ) fais créé :
voila je suis bien bloqué la.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // quant je veux faire avec le dinamiqueDialog extern "C" void WINAPI AfxShowDlg(CWnd* pParent) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); //CDllDialog dlg(pParent); CLocalDialog dlg; dlg.SetLocalDialog(0,0,100,200,"essai",pParent); dlg.DoModal(); } // quant je veux faire avec le dialog autogénéré extern "C" void WINAPI AfxShowDlg(CWnd* pParent) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); CDllDialog dlg(pParent); //CLocalDialog dlg; //dlg.SetLocalDialog(0,0,100,200,"essai",pParent); dlg.DoModal(); }