[VC++] Afficher ou cacher un controle ?

Afficher ou cacher un controle ? [VC++] - C++ - Programmation

Marsh Posté le 18-12-2002 à 13:29:41    

Voila, j'ai un ptit pb avec VC++...
j'ai un document, qui contient differents controles, et j'aimerais soit afficher, soit cacher un controle particulier (une boite d'edition). En VB je savais faire [:ddr555], mais avec VC++...  :sweat:
Ya pas qqun qui peut me donner un ptit coup de main ?


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 18-12-2002 à 13:29:41   

Reply

Marsh Posté le 18-12-2002 à 13:32:39    

freds45 a écrit :

Voila, j'ai un ptit pb avec VC++...
j'ai un document, qui contient differents controles, et j'aimerais soit afficher, soit cacher un controle particulier (une boite d'edition). En VB je savais faire [:ddr555], mais avec VC++...  :sweat:
Ya pas qqun qui peut me donner un ptit coup de main ?


 
essaye avec un ShowWindow

Reply

Marsh Posté le 18-12-2002 à 13:41:39    

hellbilly a écrit :


 
essaye avec un ShowWindow


 

ShowWindow
The ShowWindow function sets the specified window's show state.  
 
BOOL ShowWindow(
  HWND hWnd,     // handle to window
  int nCmdShow   // show state
);


 
extrait de la msdn... c'est pas pour les controles :/


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 18-12-2002 à 13:43:32    

un contrôle est une fenêtre.

Reply

Marsh Posté le 18-12-2002 à 13:45:29    

j'y pige quedalle... [:sisicaivrai]
 
dans la msdn ya marque que ShowWindow prend deux parametres, et a la compil il dit qu'il faut seulement un...
 
 

--------------------Configuration: tableau - Win32 Debug--------------------
Compiling...
tableauView.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\tableau\tableauView.cpp(130) : error C2660: 'ShowWindow' : function does not take 2 parameters
Error executing cl.exe.
 
tableau.exe - 1 error(s), 0 warning(s)


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 18-12-2002 à 13:45:49    

freds45 a écrit :


 

ShowWindow
The ShowWindow function sets the specified window's show state.  
 
BOOL ShowWindow(
  HWND hWnd,     // handle to window
  int nCmdShow   // show state
);


 
extrait de la msdn... c'est pas pour les controles :/
 


 
Les controles sont justes des fenetres particulieres.
Recupere le handle de ton controle et ca devrait marcher.

Reply

Marsh Posté le 18-12-2002 à 13:48:48    

freds45 a écrit :

dans la msdn ya marque que ShowWindow prend deux parametres, et a la compil il dit qu'il faut seulement un...

si tu fais f12 sur ton ShowWindow(), tu vas atterir dans le code MFC. il surcharge toutes les fonctions win32 pour ta fenêtre principale : ShowWindow existe en méthode globale (celle de la msdn, deux paramètres) et dans ta classe (à un niveau supérieur, ne prend que le dernier paramètre car le handle est connu).
 
tu utilise l'opérateur :: d'accès global :
 
::ShowWindow(hWndDeTonControle, SW_HIDE)

Reply

Marsh Posté le 18-12-2002 à 13:50:36    

youdontcare a écrit :

si tu fais f12 sur ton ShowWindow(), tu vas atterir dans le code MFC. il surcharge toutes les fonctions win32 pour ta fenêtre principale : ShowWindow existe en méthode globale (celle de la msdn, deux paramètres) et dans ta classe (à un niveau supérieur, ne prend que le dernier paramètre car le handle est connu).
 
tu utilise l'opérateur :: d'accès global :
 
::ShowWindow(hWndDeTonControle, SW_HIDE)


 
ca correspond a quoi le hWnd pour le controle ?  :??:  
 
IDC_EDIT1 ca peut etre bon?
sinon ca se definit ou ?
 
merci bcp :hello: !


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 18-12-2002 à 13:57:06    

freds45 a écrit :

IDC_EDIT1 ca peut etre bon?

si tu as donné ce nom-là à ton edit dans l'éditeur, tu passes par  
 
* GetDlgItem(IDC_EDIT1)
 
ou
 
* le classwizard (ctrl+w) où tu pourras créer une variable de contrôle de ton objet. je te laisse regarder l'aide. ça te permet de faire monEdit.SetVisible(false) par exemple.

Reply

Marsh Posté le 18-12-2002 à 14:05:52    

youdontcare a écrit :

si tu as donné ce nom-là à ton edit dans l'éditeur, tu passes par  
 
* GetDlgItem(IDC_EDIT1)
 
ou
 
* le classwizard (ctrl+w) où tu pourras créer une variable de contrôle de ton objet. je te laisse regarder l'aide. ça te permet de faire monEdit.SetVisible(false) par exemple.


 
j'ai trouve ca juste avant que tu postes. merci bcp  :jap:
 
edit: j'ai cru que ca se faisait tout seul...  :sweat:


Message édité par freds45 le 18-12-2002 à 14:06:26

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 18-12-2002 à 14:05:52   

Reply

Marsh Posté le 18-12-2002 à 14:15:35    

Cai bon [:dawa]
 
En fait il faut passer par le classwizard pour ajouter une variable qui correspond au controle
 

CEdit m_editbox;
 CMSHFlexGrid m_grille;


 
 
puis dans la fonction, faire
 

::ShowWindow(m_editbox, SW_SHOW);


 
[:kazouille] :hello:
 
enfin la msdn la dessus.... http://forum.hardware.fr/icones/icon13.gif


Message édité par freds45 le 18-12-2002 à 14:16:23

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 18-12-2002 à 14:25:26    

freds45 a écrit :

::ShowWindow(m_editbox, SW_SHOW);


ce genre de truc marche car il y a une fonction de cast CWnd vers HWND. le mieux est d'utiliser la méthode de la classe :
 
m_editbox.ShowWindow(SW_SHOW);
 
(pour setVisible, je confondais avec autre chose)

Reply

Marsh Posté le 18-12-2002 à 14:27:22    


 
le msdn t'as juste sorti ce que tu lui a demande ie une fonction de l'api win32
 
pour les mfc :

Citation :


MFC Library Reference
CWnd::ShowWindow
 
Sets the visibility state of the window.
 
BOOL ShowWindow(
   int nCmdShow  
);

Reply

Marsh Posté le 18-12-2002 à 14:36:02    

hellbilly a écrit :


 
le msdn t'as juste sorti ce que tu lui a demande ie une fonction de l'api win32
 
 


 
je sais bien, mais ya plein de trucs qui ne sont expliques nulle part, genre qu'il faut definir une variable pour le controle en question par exemple :/... enfin j'ai bien avance [:dawa]


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 18-12-2002 à 14:47:13    

freds45 a écrit :


 
je sais bien, mais ya plein de trucs qui ne sont expliques nulle part, genre qu'il faut definir une variable pour le controle en question par exemple :/... enfin j'ai bien avance [:dawa]


 
faut pas que ce soit trop facile sinon y a pas d'interet  :D  ;)  
 
et puis je m'en fous j'ai jamais utilisé les mfc (et je le ferai jamais)  :kaola:  

Reply

Marsh Posté le 18-12-2002 à 14:49:35    

hellbilly a écrit :


 
faut pas que ce soit trop facile sinon y a pas d'interet  :D  ;)  
 
et puis je m'en fous j'ai jamais utilisé les mfc (et je le ferai jamais)  :kaola:  
 


 
moi je fais c'est que je suis oblige :/
l'an dernier j'ai fait une petite appli avec QT sous linux... cai 10x plus pratique je trouve  [:cupra]


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed