begin process at 2012 05 29 02:42:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

dialogbox, static et couleur (non MFC)


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

dialogbox, static et couleur (non MFC)

samedi 16 septembre 2006 à 02:15:30 | dialogbox, static et couleur (non MFC)

bbear

alors voilà
j'ai cherché un peu partout, dont ici, dans des exemples ou le forum pour changer la couleur d'un item (bouton ou autre)
Mais dans le cas qui m'interesse, je n'y arrive pas.
dans la dialogbox de config d'un screensaver (mais j'avais essayé avec un prog normal), je veux changer une couleur qui s'affichera donc dans un carré (pour la boite de dialogue de changement, j'ai vu un exemple)
quel type d'item doit etre utilisé pour montrer la couleur ? bouton, static bitmap(frame, rectangle...?)... ou directement faire un fillrect()

j'ai essayé plusieurs moyens (fillrect, wm_ctlcolorbtn, drawitem ou autre), mais rien ne fonctionne.
enfin si, j'ai réussi avec un fillrect mais...en ouvrant une dialogbox "About" à partir de la config et dans le wm_initdialog de la nouvelle dialogbox, j'ai fait un fillrect(GetDC(GetParent(hwnd)),&rect,brush) : et quand j'ai fermé le About, j'avais bien mon rectangle sur ma boîte de config mère !!!

mais si je fais la meme chose dans le initdialog de config, rien n'apparait.
bien sûr, si je fais un dialog de selection de couleur, de là je pourrai remplir la couleur, mais ce qui est gênant c'est au demarrage, l'initialisation des couleurs pas defaut qui ne s'affiche pas

ps: pas de MFC, ni de C++. je pense avoir vu quasi tous les sources à ce propos, mais j'y arrive pô

merci d'avance
samedi 16 septembre 2006 à 03:09:20 | Re : dialogbox, static et couleur (non MFC)

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Pour la couleur des controles comme les boutons, les statics etc, tu peux regarder mon code source à ce sujet: Couleurs et transparence des controles.
Le dessin sur une boite de dialogue ne doit pas se faire pendant le traitement de WM_INITDIALOG car le HDC de la boite n'est pas encore disponible. C'est logique puisque la boite ne s'affiche que lorsque le traitement de ce message se termine par un return 0.
Pour dessiner sur la boite de dialogue, il faut traiter le message WM_PAINT:
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
hdc=BeginPaint(hDlg,&ps);
Rectangle(hdc,.......);
FillRect(hdc,.....);
EndPaint( hDlg,&ps);
return 0;
}


samedi 16 septembre 2006 à 16:57:26 | Re : dialogbox, static et couleur (non MFC)

bbear

Pour le fillrect dans le WM_PAINT, ça marche

par contre, meme par rapport à votre source, j'ai essayé de créer un bouton de couleur, et bin rien, nada, marche pas.

donc je vais en rester à fillrect
Mais j'ai un nouveau probleme : j'ai bien recuperer la position du controle avec getwindowrect, mais ça ne fonctionne pas du tout ensuite avec fillrect!

samedi 16 septembre 2006 à 18:02:02 | Re : dialogbox, static et couleur (non MFC)

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Normalement, ton bouton devrait avoir la couleur voulue sans problème. Il suffit qu'il ait le style BS_OWNERDRAW. Il sera ensuite entièrement dessiné pandant le traitement du message WM_DRAWITEM. La structure DRAWITEMSTRUCT pointée par  lParam fournit le HDC et le RECT du bouton.

samedi 16 septembre 2006 à 18:44:32 | Re : dialogbox, static et couleur (non MFC)

bbear

hmm... bin oui, je vois bien dans l'exemple que ça marche
mais apparemment pas dans un ScreenSaver... (il utilise un LRESULT WINAPI ScreenSaverProc() pour le screensaver par lui meme, et un BOOL WINAPI ScreenSaverConfigDialog())
ou alors j'ai oublié quelque chose, une lib, je sais pas...c'est pas un truc qui ne marche que sur 2000/Xp avec le nouveau SDK? car je ne l'ai pas installé, j'ai l'ancien de VC6 (je sais pas trop comment basculer sur le nouveau pour le moment)

bon c'est point grave pour le moment, j'ai réussi avec mon FillRect (ça a été laborieux de trouver la bonne position pour le dessiner, mais bon...)

samedi 16 septembre 2006 à 18:51:15 | Re : dialogbox, static et couleur (non MFC)

bbear

ce qui est bizarre, c'est que mon bouton disparait completement avec WM_DRAWITEM
pourtant il est bien visible et avec bs_ownerdraw
samedi 16 septembre 2006 à 19:02:29 | Re : dialogbox, static et couleur (non MFC)

bbear

arggll
bon rappelez vos chien, la chasse est finie
ça marche maintenant... en fait c'est parce que mon bouton n'avait pas de texte
il faut que je mettre un espace (car il n'y a pas de texte justement)

samedi 16 septembre 2006 à 19:38:55 | Re : dialogbox, static et couleur (non MFC)

bbear

bon allez, un autre truc Zarb :
j'ai 3 boutons radios
les 2 premiers se deselectionnent bien quand on clique sur l'un ou sur l'autre
mais si j'active le 3ème, le precedent n'est pas desactivé, et si je reactive le 1 ou le 2, le 3 reste toujours actif
au debut, je n'avais pas se probleme
une idée ??

samedi 16 septembre 2006 à 20:39:35 | Re : dialogbox, static et couleur (non MFC)

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Le premier bouton radio doit avoir le style WS_GROUP. Tous les autres boutons radio appartenant à ce groupe ne doivent pas avoir ce style.
samedi 16 septembre 2006 à 21:09:29 | Re : dialogbox, static et couleur (non MFC)

bbear

ha d'accord !
merci merci

1 2

Cette discussion est classée dans : couleur, static, config, dialogbox, fillrect


Répondre à ce message

Sujets en rapport avec ce message

couleur de fond d'une DialogBox [ par glipper ] Bonjour,Je cherche un moyen de changer la couleur de fond d'une dialogbox simplement ! A defaut d'une solution simple, serait-il possible d'avoir une static [ par leprov ] salut a tous.bon alors voila. je fais une fenetre, et je voudrais placer quelques statiques. la j'ai plusieurs questions. la premiere étant comment fa Couleur de fond d'un control STATIC [ par raidentr ] Salut,J'ai créé dans VC++ 6 un control STATIC de la facon suivante :HWND hwnd;hwnd_lbl = CreateWindowEx(0, "STATIC", "Mon Texte", WS_VISIBLE|WS_CHILD, Static en couleur [ par camel ] oui je sais ya des sources qui montrent comment mettre des static sous Win32 sans MFC en couleur mais j'ai pas compris !et sous MSDN c'est l'embrouill changer la couleur d'un static [ par mogwai93 ] Bonjour, j'aimerais modifier la couleur d'un objet static et la couleur de fond. pour le moment, je n'ai trouvé qu'avec SetTextColor et SetBkColor s (win32) couleur de fond d'un static [ par mogwai93 ] Bonjour j'essaie de modifier la couleur de fond d'un static ca passe sauf pour la zone qui entoure que le texte le reste du static etant bien dans la Changer la couleur de texte d'un controle static [ par Gpic ] Salut à tous, ya t'il un moyen de changer la couleur du texte d'un controle static sous Visual Studio.NET. Merci RGB couleur [ par yoshyman ] Salut j' ai essayer plein de fois de faire du jaune avec RGB.mais j'y suis pas arriver!quelqu'un pourait il me donner un code?yoshyman couleur d'un texte dans un buffer [ par dams6478 ] bonjour, voila je voudrai modifier la couleur d'un texte que j'insere dans un buffer texte voila la commande que j'utilise pour inserrer ce texte: gt couleur du highlight [ par SnOOpss ] Bonjour j'aimerais savoir si il existe un moyen de changer la couleur de surlignage dans un edit par example, j'ai testé avec SetSysColors() mais cett


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,889 sec (4)

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