begin process at 2012 05 28 18:26:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

dev sans MFC


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

dev sans MFC

mardi 10 février 2004 à 19:56:06 | dev sans MFC

c2millet

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);


// Réception des messages
LRESULT CALLBACK WinProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{

switch (msg)
{

case WM_CTLCOLORBTN:

SetTextColor((HDC) wParam, RGB(0,255,3));


break;

// Fermeture du programme
case WM_DESTROY:

// Ferme le programme
PostQuitMessage(0);
break;

// 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);

}
break;

default:

return DefWindowProc(hwnd, msg, wParam, lParam);
break;

}
DeleteObject(hbr);
return 0;

}

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))
{

TranslateMessage(&msg);
DispatchMessage(&msg);

}



return 0;
}



Cmill
mardi 10 février 2004 à 20:32:36 | Re : dev sans MFC

vecchio56

Administrateur CodeS-SourceS
pas de chance c'est impossible
mardi 10 février 2004 à 20:36:06 | Re : dev sans MFC

vecchio56

Administrateur CodeS-SourceS
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
mardi 10 février 2004 à 20:40:10 | Re : dev sans MFC

c2millet

Ok ça g essayé mais j'arrive pas a mettre des bordures et le texte disparait tu c poukoi
Cmill

Cmill
mardi 10 février 2004 à 20:54:09 | Re : dev sans MFC

vecchio56

Administrateur CodeS-SourceS
non puisque je ne sais pas comment tu as fais
mardi 10 février 2004 à 20:57:03 | Re : dev sans MFC

vecchio56

Administrateur CodeS-SourceS
tu peux trouver des exemples de bouton personnalisés sur MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/buttons/usingbuttons.asp
mais réfléchit bien avant si c'est vraiment utile de la faire, ca va te compliquer la vie pour rien
mardi 10 février 2004 à 21:06:42 | Re : dev sans MFC

c2millet

dac je te remercie pour le coup de main.Sinon que penses tu du code que g développé ça te semble cohérent? je demande comme je suis débutant
Cmill
mardi 10 février 2004 à 22:02:12 | Re : dev sans MFC

vecchio56

Administrateur CodeS-SourceS
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
samedi 18 décembre 2004 à 11:54:11 | Re : dev sans MFC

Gendal67


Le jour ou tu arriveras a prog sous dev ac MFC tu m'appelleras par contre! mdr!!

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


Cette discussion est classée dans : bouton, fenêtre, hwnd, wc, hinstance


Répondre à ce message

Sujets en rapport avec ce message

pb avec le plein écran de DirectX que je veux enlever [ par Diabolus ] Bonjour à tous !Je souhaiterai créer une fenêtre en mode normal et tout ce que j'arrive à faire c'est du plein écran. J'aimerai enlever le plein écran Comment créer un Bouton [ par new0staff ] Bonjour!Le programme ci-dessous crée et affiche une fenêtre simple. Ce que je souhaite faire, c'est rajouter un Bouton à cette fenêtre.Ce qui ne joue Affichage avec API Windows [ par PunkDude424 ] Bon j'ai un problème avec l'affichage à l'aide de L'api win32Je suis débutant en la matière et j'ai le problème suivant.J'ai une application client se Aide sur action d'un bouton dans une sous fenêtre [ par jbmartinez ] J'ai programmé sur Dev C++ un bouton avec image dans une fenêtre fille de la fenêtre principal. Aussi je ne parviens plus à récupérer le message du bo Application MDI dans une classe [ par PLUiK ] Salut!Je voudrais savoir s'il est possible de coder uneapplication MDI en C++ (en mettant presque tout le codedans la classe):#include //Code de la cl Problème de linker dans programme de base. [ par vith17 ] Bonjour,J'ai tapé le code suivant sous Dev-C++. Lorsque je lance la compilation, il me revoie l'erreur suivante :    [Linker error] undefined referenc Colorier un static : HEeeeeeeelp !!! [ par sprintjeffC ] salut @ tousje me mets a la programmation windows en C/C++ (pas VC++ merci ... quitte à faire du microsoft je préfère VB ;-). Je démarrai pas mal et t [C++]Problème de pointeur ou de liste chainee [ par Arkko ] Bonjour... J'essaye de convertir une liste chainée du site en une liste chainée demandant comme parametre un new par exemple ajouter(new Test);Cela f Pb sur un ptit bout de prog en DirectX.... [ par Haldwin ] Salut a tous....Voila j'ai deux ptits pbs quand je lance cette appli ci-dessous... (VC++)La première est q'une fois sur deux ma variable hWnd apres le


Nos sponsors


Sondage...

Comparez les prix

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 : 5,366 sec (3)

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