Bonjour,
Je n'utilise pas les MFC. J'ai ajouté un bouton initialement Disabled = TRUE
Comment réactiver ce bouton ?
De meme si je crée une Edit Control en read-only, comment la faire passer en read/write par une commande ?
Merci.
Bonjour,
Je n'utilise pas les MFC. J'ai ajouté un bouton initialement Disabled = TRUE
Comment réactiver ce bouton ?
De meme si je crée une Edit Control en read-only, comment la faire passer en read/write par une commande ?
Merci.
comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part nomdetonbouton.EnableWindow(TRUE);
Merci mais ca me donne ca:
error C2228: left of '.EnableWindow' must have class/struct/union
si tu appliques la fonction à un objet qui n'est pas défini, alors c'est normal.
Le bouton existe bien, donc je ne vois vraiment pas comment faire
moi non plus si tu ne nous montre pas un peu de code. l'erreur que tu as provient du fait que l'objet auquel tu essaie d'appliquer la fonction n'est pas reconnu.
le bouton IDC_WATERMARK est disabled par defaut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 BOOL APIENTRY AnalyzeProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { int Select; switch (uMsg) { case WM_INITDIALOG: //SendDlgItemMessage(hDlg, IDC_WATERMARK, WM_ENABLE, TRUE, 0); IDC_WATERMARK.EnableWindow(TRUE);
IDC_WATERMARK n'est pas un bouton, mais un identifiant de ressource.
c'est un nombre entier dont tu trouveras la définition dans le fichier resources.h de ton projet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetDlgItem(IDC_WATERMARK)->EnableWindow(TRUE);
Alors oui j'ai essayé ca, voila ce que ca me sort:Si je remplace parerror C2660: 'GetDlgItem' : function does not take 1 arguments
error C2227: left of '->EnableWindow' must point to class/struct/union/generic typecela me met:
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetDlgItem(hDlg,IDC_WATERMARK)->EnableWindow(TRUE);error C2039: 'EnableWindow' : is not a member of 'HWND__'
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\windef.h(207) : see declaration of 'HWND__'
ok, j'avais pas vu que tu n'utilisais pas les MFC ...
je ne connais pas Win32 désolé
ce sont les memes fonctions en win32 :
::EnableWindow existe il faut juste lui donner le handle de fenetre en plus.
voir doc MSDN.
tu peux me dire alors pourquoi ca marche pas ? (un peu plus que "voir doc") ca serait super sympaSi je remplace par Code:
GetDlgItem(hDlg,IDC_WATERMARK)->EnableWindow(TRUE);
cela me met: Citation:
error C2039: 'EnableWindow' : is not a member of 'HWND__'
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\windef.h(207) : see declaration of 'HWND__'
d'ailleurs meme si je metca produit le meme resultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetDlgItem(hDlg,IDC_WATERMARK)->EnableWindow(hDlg,TRUE);
et bien il faut savoir ou tu te situes:Envoyé par OyyoDams
soit tu utilises les api win32 alors les appels sont du C pas du C++
ou alors les MFC.
si c'est du win32:
si c'est en MFC:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ::EnableWindow(GetDlgItem(hDlg,IDC_WATERMARK),TRUE);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // a partir de la boite de dialogue GetDlgItem(IDC_WATERMARK)->EnableWindow(TRUE);
Genial ca marche merci beaucoup, c'est vrai que j'ai encore du mal a adapter du code MFC en code WIN32...
Reste plus qu'a trouver comment faire passer en read/write une Edit Control initialement en read-only, et je pourrai dormir tranquille
En tout cas déja merci pour le bouton
si tu as compris que les fonctions MFC et WIN32 qui s'appliquent aux fenetres sont identiques au detail que
les MFC encaspulent les apis classiques dans une classe avec le handle de fenetre.
alors regarde la faq et adapte ton appel pour du win32:
http://c.developpez.com/faq/vc/?page=CWnd#ModifyStyle
la fonction a utiliser est donc ModifyStyle...
Tu peut faire comme ça aussi :
ensuite tu met ça pour le réactiver :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 EnableWindow(GetDlgItem(hdlg, 100), FALSE); // GetDlgItem(hdlg, 100) pour trouve le handle du boutton
Code : Sélectionner tout - Visualiser dans une fenêtre à part EnableWindow(GetDlgItem(hdlg, 100), TRUE);
Merci mais visiblement en win32 il ne connait pas du tout la fonction ModifyStyle
Je me répons a moi meme, ca peut servir a d'autres, j'ai trouvé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendMessage(HWND,EM_SETREADONLY, FALSE/TRUE, 0);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager