bonjour,
première chose : j'ai lu la FAQ, j'ai appliqué le principe d'activation/désactivation qui y est proposé, et ça marche
(et là ya tout le monde qui se demande : mais il est bête lui, ça marche , alors qu'est-ce qu'il nous veut?? )
explication : (ben oui explique, eh bouffon!! )
projet SDI
un certain bouton de ma CToolBar ne doit être actif que si une variable membre de mon CDocument ne pointe pas sur NULL.
donc quand je lance mon appli, le bouton est désactivé. j'initialise la variable et le bouton devient actif.
maintenant, si j'ouvre un fichier de données, je voudrais que l'état de mon bouton change en fonction de ce qui se trouve dans le fichier : si la variable est NULL, on désactive le bouton, si on a pu lui donner une valeur, on active le bouton.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //dans la View // Désactivation du bouton Classement de la CToolBar ((CMainFrame*)this->GetParentFrame())->setTestBool(false); // Effacement de l'ancienne compétition si elle existait if (GetDocument()->getCompetition()!=NULL) { delete GetDocument()->getCompetition(); GetDocument()->setCompetition(NULL); } ... // initialisation de ma variable // Activation du bouton Classement de la CToolBar ((CMainFrame*)this->GetParentFrame())->setTestBool(true);
idem si je fais fait Nouveau ---> ma variable = NULL, le bouton doit être désactivé
le problème c'est que je ne sais pas où tester ma variable et changer l'état du bouton.
- dans mon CDocument, lors de la sérialisation ??
----> comment changer la valeur du booléen de la MainFrm qui donne l'état du bouton ??
- dans mon CFormView, dans le OnInitialUpdate() ??
merci pour vos lumières
(d'ailleurs, peut-on m'expliquer quand intervient le OnInitialUpdate?
quand j'appuis sur Nouveau, c'est appelé. mais quand j'appuis sur Ouvrir ou Sauvegarder?)
Partager