c2millet
Messages postés198Date d'inscriptionlundi 2 juin 2003StatutMembreDernière intervention15 février 2005
-
10 févr. 2004 à 19:56
Gendal67
Messages postés627Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 juillet 2011
-
18 déc. 2004 à 11:54
Voilà j'essaie de faire un prog sans MFC et je voudrais changer la couleur de text d'un bouton ainsi que ça couleur de fond.
Si qqun peu m'aider merci
mon code:
HWND winhWnd;// Handle de fenêtre clé de la fenêtre
HBRUSH hbr;
// Procédure qui va recevoir les messages
LRESULT CALLBACK WinProc(HWND, UINT, WPARAM, LPARAM);
// Fermeture de la fenêtre via le menu système ou la croix(X) noir
case WM_CLOSE:
// Détruit la fenêtre
DestroyWindow(hwnd);
break;
// Réception des commandes
case WM_COMMAND:
// Vérifie que c'est bien le bouton Vérifie si on à cliquer sur le bouton if ((LOWORD(wParam) ID_BUTTON) && (HIWORD(wParam) BN_CLICKED))
{
// Affiche un MessageBox disant qu'on à cliquer sur le bouton
MessageBox(winhWnd, "Vous avez cliquer sur le Bouton!!!", "BN_CLICKED", MB_OK|MB_ICONINFORMATION);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
MSG msg;//structure contenant les messages a envoyer à la fenêtre
WNDCLASSEX wc;//structure temporaire pour paramétrerla fenêtre avant ça creation
// Création de la classe
wc.cbSize = sizeof(WNDCLASSEX); // Taille de la structure
wc.style = CS_HREDRAW | CS_VREDRAW; //redessiner la fenêtre après chaque modif
wc.lpfnWndProc = WinProc; // pointe versla fonction CALLBACK Wndproc pour savoir quelle fonction appeler
wc.cbClsExtra = 0; // ...
wc.cbWndExtra = 0; // ...
wc.hInstance = hInstance; // Contient la clé unique du programme
wc.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1)); // Grande icone
wc.hIconSm = LoadIcon(NULL, NULL); // Petite icone
wc.hCursor = LoadCursor(NULL, IDC_ARROW); // Curseur
wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);// Couleur de fond
wc.lpszClassName = "Email";// Nom de la classe
wc.lpszMenuName = "Email"; // Menu
// Enregistre la classe
if (!RegisterClassEx(&wc))
{
// Échec
MessageBox(NULL, "Erreur lors de l'enregistrement de la classe.", "Erreur", MB_OK);
return 0;
}
// Création de la fenêtre
winhWnd = CreateWindowEx(0, "Email","Envoi d'email",WS_OVERLAPPEDWINDOW | WS_VISIBLE | SYSMENU ,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,HWND_DESKTOP,LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU1)),hInstance,NULL);
//Création du bouton
if (winhWnd == NULL)
{
// Échec
MessageBox(NULL, "Erreur lors de la création de la fenêtre.", "Erreur", MB_OK);
return 0;
}
// Création du bouton
HWND cmdhWnd = CreateWindowEx(0, "BUTTON","couleur",WS_VISIBLE|WS_CHILD|BS_NOTIFY| BS_TEXT |BS_DEFPUSHBUTTON,30,30,150,80,winhWnd,(HMENU)ID_BUTTON,hInstance,NULL);
if (cmdhWnd == NULL)
{
// Échec
MessageBox(winhWnd, "Erreur lors de la création du Bouton.", "Erreur", MB_OK);
return 0;
}
// Envoie tu texte dans le bouton(Caption)
SetWindowText(cmdhWnd, "Ceci est un Bouton!");
// Boucle qui permet au programme de rester ouvert :)
while (GetMessage(&msg, NULL, 0, 0))
{
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 févr. 2004 à 20:36
enfin tu peux toujours créer une boutton owner-drawn, là c'est a toi de dessiner les bordures et le texte du bouton, et la tu as une liberté totale. Note qu'avec les MFC tu aurais le même problème
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 10 févr. 2004 à 22:02
pour l'instant, c'est tout ce qu'il y a de plus classique, je n'ai rien à redire, à part peut être le DeleteObject(hbr); que je n'aurais pas placé la mais plutot à la fin du prog, mais c'est un détail
Et ta variable globale winhWnd ne sert a rien car elle est égale au paramètre hwnd de WinProc