Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1385 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VISUAL C++]Changer la fenetre principale d'une SDI

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VISUAL C++]Changer la fenetre principale d'une SDI

n°347242
lapiou
fuji s602z
Posté le 29-03-2003 à 16:17:20  profilanswer
 

Comment changer la fenetre de fond d'une SDI? On a vu qu'il fallait créer une dialog, la mettre en "child", mais ensuite, ca bloque...
 
Comment faire pour remplacer la principale par notre nouvelle dialog???

mood
Publicité
Posté le 29-03-2003 à 16:17:20  profilanswer
 

n°347273
amsterdam
Posté le 29-03-2003 à 16:56:49  profilanswer
 

Question idiote le S c'est pas pour single et mdi pour multiple?
Ou alors ça ne fonctionne pas comme VB6.

n°347280
lapiou
fuji s602z
Posté le 29-03-2003 à 17:08:19  profilanswer
 

ouyi, en effet c pour Single. on n'en veut pas plusieurs ....
 
notre probleme est que l'on aimerait juste remplacer la fenetre principale du sdi (en dessous du menu) par une autre...

n°347282
amsterdam
Posté le 29-03-2003 à 17:17:55  profilanswer
 

Pourquoi l'avoir si c'est pour la remplacer.
Je ne connais quasiment pas vc++ mais si tu as besoin que d'une form tu la crée avec l'assistant.
Tu cherches à faire une boite de dialogue ou quelque chose de plus compliqué ?

n°347284
amsterdam
Posté le 29-03-2003 à 17:23:38  profilanswer
 

Je viens d'essayer et apparement il faut:
Créer un new projet sdi.
Ajouter une dialog box c'est çà?
 
Sinon si c'est un petit projet, au lieu de choisir sdi ou mdi il existe dialog.


Message édité par amsterdam le 29-03-2003 à 17:27:26
n°347285
harrysauce
Miaaaooou!
Posté le 29-03-2003 à 17:26:40  profilanswer
 

amsterdam a écrit :

Je viens d'essayer et apparement il faut:
Créer un new projet sdi.
Ajouter une dialog box c'est çà?


c'est ca, on aimerai remplacer la dialog box qui s'affiche de base par une autre....mais on ne trouve pas la fonction qui permettrait de remplacer la premiere dialog box par une autre...


Message édité par harrysauce le 29-03-2003 à 17:27:02
n°347287
lapiou
fuji s602z
Posté le 29-03-2003 à 17:27:52  profilanswer
 

oui, c ca...maintenant, par exemple, creer un bouton sur la premiere dialog ki par exemple remplacera celle-ci par une autre dialog

n°347288
amsterdam
Posté le 29-03-2003 à 17:30:26  profilanswer
 

Donc tu as une première form avec un bouton et tu veux afficher via un show la deuxième form en cliquant.
En VB c'est justement show donc regarde si il y a qque chose d'approchant en vc++.

n°347290
harrysauce
Miaaaooou!
Posté le 29-03-2003 à 17:36:50  profilanswer
 

amsterdam a écrit :

Donc tu as une première form avec un bouton et tu veux afficher via un show la deuxième form en cliquant.
En VB c'est justement show donc regarde si il y a qque chose d'approchant en vc++.


y'a :
 BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );  
    BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
 
 
et :
BOOL ShowWindow  
    ( HWND hWnd, // handle to window  
      int nCmdShow // show state of window ) ;
 
 mais impossible de compiler l'une ou l'autre, on a pas vraiment compris ce qu'etaient : LPCTSTR lpszTemplateName, CWnd* pParentWnd, UINT nIDTemplate et HWND hWnd, dc en fait c pas gagné.....

n°347293
amsterdam
Posté le 29-03-2003 à 17:40:03  profilanswer
 

Désolé mais là je passe la main au pros de la prog zindows.
Désolé mais srti de VB y am une grosse quiche. :d
Sinon tu as cherché des tutos sur vc++6 sur le net?


Message édité par amsterdam le 29-03-2003 à 17:41:32
mood
Publicité
Posté le 29-03-2003 à 17:40:03  profilanswer
 

n°347295
amsterdam
Posté le 29-03-2003 à 17:45:58  profilanswer
 
n°347496
gilou
Modérateur
Modzilla
Posté le 30-03-2003 à 14:33:34  profilanswer
 

harrysauce a écrit :


y'a :
 BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );  
    BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
 
 
et :
BOOL ShowWindow  
    ( HWND hWnd, // handle to window  
      int nCmdShow // show state of window ) ;
 
 mais impossible de compiler l'une ou l'autre, on a pas vraiment compris ce qu'etaient : LPCTSTR lpszTemplateName, CWnd* pParentWnd, UINT nIDTemplate et HWND hWnd, dc en fait c pas gagné.....


MFC Library Reference    
 

Citation :

CDialog::Create
Call Create to create a modeless dialog box using a dialog-box template from a resource.
 
virtual BOOL Create(
   LPCTSTR lpszTemplateName,
   CWnd* pParentWnd = NULL  
);
virtual BOOL Create(
   UINT nIDTemplate,
   CWnd* pParentWnd = NULL  
);
Parameters
lpszTemplateName  
Contains a null-terminated string that is the name of a dialog-box template resource.  
pParentWnd  
Points to the parent window object (of type CWnd) to which the dialog object belongs. If it is NULL, the dialog object's parent window is set to the main application window.  
nIDTemplate  
Contains the ID number of a dialog-box template resource.  
Return Value
Both forms return nonzero if dialog-box creation and initialization were successful; otherwise 0.
 
Remarks
You can put the call to Create inside the constructor or call it after the constructor is invoked.
 
Two forms of the Create member function are provided for access to the dialog-box template resource by either template name or template ID number (for example, IDD_DIALOG1).
 
For either form, pass a pointer to the parent window object. If pParentWnd is NULL, the dialog box will be created with its parent or owner window set to the main application window.
 
The Create member function returns immediately after it creates the dialog box.
 
Use the WS_VISIBLE style in the dialog-box template if the dialog box should appear when the parent window is created. Otherwise, you must call ShowWindow. For further dialog-box styles and their application, see the DLGTEMPLATE structure in the Platform SDK and Window Styles in the MFC Reference.  
 
Use the CWnd::DestroyWindow function to destroy a dialog box created by the Create function.


 
 
A+,


Message édité par gilou le 30-03-2003 à 14:36:11

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°347532
harrysauce
Miaaaooou!
Posté le 30-03-2003 à 15:53:10  profilanswer
 

gilou a écrit :


MFC Library Reference    
 

Citation :

CDialog::Create
Call Create to create a modeless dialog box using a dialog-box template from a resource.
 
virtual BOOL Create(
   LPCTSTR lpszTemplateName,
   CWnd* pParentWnd = NULL  
);
virtual BOOL Create(
   UINT nIDTemplate,
   CWnd* pParentWnd = NULL  
);
Parameters
lpszTemplateName  
Contains a null-terminated string that is the name of a dialog-box template resource.  
pParentWnd  
Points to the parent window object (of type CWnd) to which the dialog object belongs. If it is NULL, the dialog object's parent window is set to the main application window.  
nIDTemplate  
Contains the ID number of a dialog-box template resource.  
Return Value
Both forms return nonzero if dialog-box creation and initialization were successful; otherwise 0.
 
Remarks
You can put the call to Create inside the constructor or call it after the constructor is invoked.
 
Two forms of the Create member function are provided for access to the dialog-box template resource by either template name or template ID number (for example, IDD_DIALOG1).
 
For either form, pass a pointer to the parent window object. If pParentWnd is NULL, the dialog box will be created with its parent or owner window set to the main application window.
 
The Create member function returns immediately after it creates the dialog box.
 
Use the WS_VISIBLE style in the dialog-box template if the dialog box should appear when the parent window is created. Otherwise, you must call ShowWindow. For further dialog-box styles and their application, see the DLGTEMPLATE structure in the Platform SDK and Window Styles in the MFC Reference.  
 
Use the CWnd::DestroyWindow function to destroy a dialog box created by the Create function.


 
 
A+,


Merci, mais en fait c'est pas des CDialog qu'on doit créer mais des CFormView, et la la syntaxe n'est plus du tout la meme, y'a 5-6 arguments a passer et j'y capte plus grand chose.....

n°347541
harrysauce
Miaaaooou!
Posté le 30-03-2003 à 16:09:19  profilanswer
 

Je viens d'essayer ca :
 

Code :
  1. CWnd* pWnd = new CWnd;
  2. pWnd->Create(_T("fen2" ), "Hi", WS_CHILD | WS_VISIBLE,
  3.        CRect(0, 0, 200, 200), this, IDD_DIALOG2);


 
mais ca marche pas, ca compile mais qd on clique sur le bouton il ne se passe rien
 
 
 
 
J'ai 2 dialog, une de type CFormView (la premiere, créée par visual) et une autre de type CDialog (la classe dérivée est "fen2" ).
L'ID de la seconde est IDD_DIALOG2
 
Le code au dessus est éxecuté qd on clique sur un bouton de la premiere Dialog (la CFormView)

n°347753
harrysauce
Miaaaooou!
Posté le 30-03-2003 à 21:45:37  profilanswer
 

up!

n°347776
VisualC++
J'va y penser ...
Posté le 30-03-2003 à 22:10:37  profilanswer
 

Euh ta fenetre a creer c une dialog ? Si oui euh pkoi new CWnd ?
 
Pour faire simple:
1 - cree une ressource dialog ds les ressources (a priori tu as deja fait)
2 - ClassWizard > cree une classe associee a la nvelle dialog derivant de type CDialog
3 - dans le code de ton button qui doit affucher la dialog

Code :
  1. CMyDialog dlg;
  2. int iRet = dlg.DoModal();
  3. if (iRet ..)  ... les code au cas ou etc


 
Maintenant si tu veux une boite de dialog qui bloque pas ta SDI/MDI/Dlg derriere faut faire pareil sauf que passe par une thraed qui creera la dlg en elel meme.
 

n°347890
harrysauce
Miaaaooou!
Posté le 31-03-2003 à 03:55:29  profilanswer
 

VisualC++ a écrit :

Euh ta fenetre a creer c une dialog ? Si oui euh pkoi new CWnd ?
 
Pour faire simple:
1 - cree une ressource dialog ds les ressources (a priori tu as deja fait)
2 - ClassWizard > cree une classe associee a la nvelle dialog derivant de type CDialog
3 - dans le code de ton button qui doit affucher la dialog

Code :
  1. CMyDialog dlg;
  2. int iRet = dlg.DoModal();
  3. if (iRet ..)  ... les code au cas ou etc


 
Maintenant si tu veux une boite de dialog qui bloque pas ta SDI/MDI/Dlg derriere faut faire pareil sauf que passe par une thraed qui creera la dlg en elel meme.
 
 


voui mais la si on bouge la fenetre de derriere ca va laisser celle qu'on vient de créer par dessus a sa place originelle, spa terrible...

n°348004
VisualC++
J'va y penser ...
Posté le 31-03-2003 à 10:29:16  profilanswer
 

Bah deja si t t plus explicite ds ta question aussi :p
 
Car la si je te comprend tu voudrais qu en plus ta dlg ouverte soit positionne vis a vis du cframewnd de ta fenetre originale.
 
Donc la si tu veux faire ca, c'est pa une dlg qu il te faudrait mais une nouvelle cformview, enfin la comem ca en regardant rapidement.

n°348137
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 31-03-2003 à 12:27:59  profilanswer
 

VisualC++ a écrit :

Bah deja si t t plus explicite ds ta question aussi :p
 
Car la si je te comprend tu voudrais qu en plus ta dlg ouverte soit positionne vis a vis du cframewnd de ta fenetre originale.
 
Donc la si tu veux faire ca, c'est pa une dlg qu il te faudrait mais une nouvelle cformview, enfin la comem ca en regardant rapidement.


 
Oui moi aussi, j'avais pas compris avec ses histoires de dialog alors qu'il s'agit en fait de CFormView.
 
lapiou> Si tu veux switcher plusieurs CFormView dans une appli SDI, c'est expliqué ici :  
http://www.codeguru.com/doc_view/ScreenSwitch.shtml


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VISUAL C++]Changer la fenetre principale d'une SDI

 

Sujets relatifs
comment changer l'icone d'un prog en mode console (sous visual c++)Code vb pour changer le. en , dans Access
[ACCESS] Transférer ds une Base principale les données d'autres Bases[C]Afficher un pixel d'une certaine couleur dans une fenêtre DOS ?
VK_ESCAPE sur fenetre principale[Visual C++] prog en ligne de commande avec interface visuelle option
Fenetre IE sans la barre d'URLVisual Route
Plus de sujets relatifs à : [VISUAL C++]Changer la fenetre principale d'une SDI


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR