begin process at 2012 05 30 00:53:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

ordonner un message WM_CTLCOLORDLG ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ordonner un message WM_CTLCOLORDLG ?

samedi 18 décembre 2004 à 20:50:18 | ordonner un message WM_CTLCOLORDLG ?

Gendal67


Bonsoir tout le monde...

Alors la, je reste coincé sans réponses sur le forum aors je vous pose la question (ça pourra en aider d'autres surement)...comment faire pour changer la couleur de fond de dialogbox au "cour du temps", par exemple si on clique sur un bouton ? En clair, j'essaie de simuler un message WM_CTLCOLORDLG...et ça marche...mais le pb c'est que ça change pas la couleur...bref, c'est compliqué..voici le bout de code explicatif :


// instructions fonctions CALLBACK de DialogBox...

case WM_COMMAND:

switch(LOWORD(wParam)) {

case IDC_COLOR:

hChooseColor.rgbResult = hResultColor;

if(ChooseColor(&hChooseColor)) {

hDlgFont = hChooseColor.rgbResult;
SendMessage(hDlg, WM_CTLCOLORDLG, (WPARAM) 155, (LPARAM) 0);
}
break;
}
break;

case WM_CTLCOLORDLG:

if (wParam == 155) {

hDlgBrush = CreateSolidBrush(hDlgFont);
return (long) hDlgBrush;
}
break;

// autres instructions


voila, quand je poste le message par PostMessage, il n'y a rien qui marche...ac SendMessage, j'arrive dans le case WM_CTLCOLORDLG mais ça ne me change pas la couleur de fond...bizarre, non ?
Enfin, si qqun a une tite idée ou piste, je suis preneur! ++ all!


Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
samedi 18 décembre 2004 à 21:11:08 | Re : ordonner un message WM_CTLCOLORDLG ?

AlexMAN

Membre Club
WM_CTLCOLORDLG:
return hbrFond;
WM_COMMAND:
if (wparam == ID_BUTTON) {
DeleteObject(hbrFond);
hbrFond = CreateSOlidBrush(0x00FFEA12);
InvalidateRect(hwnd, 0, 0); //Je sais pas si c necessaire
}
return 0;

Je pense que ca devrait marcher, j'ai pas testé..Mais je pense que ca devrait marcher.

++

+2(p - n)
samedi 18 décembre 2004 à 21:16:33 | Re : ordonner un message WM_CTLCOLORDLG ?

Gendal67

nan, sa ve tjs pas...voici mon code updaté :


case WM_CTLCOLORDLG:

if (wParam == 155) {

DeleteObject(hDlgBrush);
hDlgBrush = CreateSolidBrush(hDlgFont);
InvalidateRect(hDlg, 0, 0);
return (long) hDlgBrush;
}
break;


Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
samedi 18 décembre 2004 à 21:25:12 | Re : ordonner un message WM_CTLCOLORDLG ?

AlexMAN

Membre Club
J'ai pas dit de faire ca ! regarde bien mon code..
Et pis dans ton appel a CreateSOlidBrush(), c koi ce ke tu mets en param ?? Il faut mettre une couleur (COLORREF) et pas un HBRUSH existant...

+2(p - n)
samedi 18 décembre 2004 à 21:34:05 | Re : ordonner un message WM_CTLCOLORDLG ?

Gendal67


et comme ceci ?


case IDC_COLOR:

hChooseColor.rgbResult = hResultColor;

if(ChooseColor(&hChooseColor)) {

hDlgFont = hChooseColor.rgbResult;
DeleteObject(hDlgBrush);
hDlgBrush = CreateSolidBrush(hDlgFont);
InvalidateRect(hDlg, 0, 0);
}
break;

// instructions

case WM_CTLCOLORDLG:

return (long) hDlgBrush;
break;


Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
samedi 18 décembre 2004 à 21:41:42 | Re : ordonner un message WM_CTLCOLORDLG ?

Gendal67


voila, la ça marche...ya juste un pb...sa update pas tt seul! fo ke je fasse un minimize et ke je restore pr voir le chg....le updateWindow() ne fait rien...une idée ?

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
samedi 18 décembre 2004 à 21:42:30 | Re : ordonner un message WM_CTLCOLORDLG ?

AlexMAN

Membre Club
InvalidateRect(hwnd, 0, 0) pour 'rafraichir' une fenetre.

+2(p - n)
samedi 18 décembre 2004 à 21:47:14 | Re : ordonner un message WM_CTLCOLORDLG ?

Gendal67


Oui mais non...faut quand même que je passe qqch devant la fenetre pour que la partie cachée se redécouvre en étant actualisé...


Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
samedi 18 décembre 2004 à 21:50:45 | Re : ordonner un message WM_CTLCOLORDLG ?

Gendal67


voci le code (qui marche) :


case IDC_COLOR:

if(ChooseColor(&hChooseColor)) {

hDlgFont = hChooseColor.rgbResult;
DeleteObject(hDlgBrush);
hDlgBrush = CreateSolidBrush(hDlgFont);

SendMessage(hDlg, WM_CTLCOLORDLG, 0, 0);
InvalidateRect(hDlg, 0, 0);
}
break;


Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
samedi 18 décembre 2004 à 21:52:06 | Re : ordonner un message WM_CTLCOLORDLG ?

Gendal67


Enfin, le code marche mais comme je te dis, sa update pas sous mes yeux, fo "cacher" la fenetre et quand on la fait réapparaitre, les chg sont visibles...

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))

1 2 3

Cette discussion est classée dans : message, couleur, case, wm, ctlcolordlg


Répondre à ce message

Sujets en rapport avec ce message

couleur boutton [ par pmolina ] je sais que la question a deja ete traitée mais je n'arrive pas a appliquer la reponse.En effet mon but est de changer la couleur d'un bouton. pour ce utiliser plusieurs controles scrollbar dans une fenetre [ par kaishaku ] Bonjour, je debute la programmation win32 en ecrivant un petit soft, pour mon pere, dans lequel j'ai besoin de 4 scrollbars horizontales. J'arrive à g Timer [ par youri01 ] salut,j'ai un ptit problème avec le timer je n'arrive pas à le faire fonctionner. dans la "WindowsProcedure" je mets :switch (message)              {  Socket qui coupe la connection immédiatement [ par trafounet ] Bonjour à tous,j'ai un petit problème avec les sockets, je veux créer un serveur, mais lorsque un client essaye de se connecter, la connection est acc API Windows, gestion de WM_COMMAND [ par coucou_le_minou ] Bonjour, tout d'abord pardonnez moi si mon message ne correspond pas a la rubrique choisie, j'ai eu quelques soucis a cerner la categorie de mon probl [VBA] Aide sur macro EXCEL [ par mibri ] bonjour à tous (tes) je me demande en développant les différents thèmes si je suis sur le bon forum ??? je pose tout de même mon problème. J'ai cherch Récupérer les événements sur une frame dans C++ via JNI [ par PleoX ] Bonjour,(J'espère avoir mis mon sujet dans le bon thème. J'ai pas trouvé de thème plus aproprié.)Je suis en train de créer une application multi-touch Win32 - Message WM_LBUTTONUP non reçu [ par nico255 ] Bonsoir, mon programme en C Win32 est en tray-icon et s'inspire fortement de la source CONTROLE-VOLUME-OSD-WIN32 (ID=38949) - une CreateWindowEx WS_ WM_USER [ par mika_33 ] Bonjour à toute la communauté, Voici mon problème je développe un programme avec builder 4 pour la lecture et l'écriture de caractères sur une liaison case WM_KEYDOWN marche pas quand je suis dans un contrôle. [ par paramotdam ] Bonjour,Quand je lance mon programme et que j'appuie sur la touche Entrer, le programme va bien dans VK_RETURN et exécute "SendMessage(MaFenetre, WM_C


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,669 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales