Creer un bouton avec l'API Windows

Résolu
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006 - 22 mai 2005 à 11:17
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006 - 24 mai 2005 à 20:12
code : ICI

C'est sensé faire apparaitre une fenêtre avec un gros bouton "Quitter" au milieu .

Mais rien ne marche , même pas l'affichage de la fenêtre ...

help ?


Je suis qu'un pitit programmeur en herbe ...

35 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
22 mai 2005 à 20:10
Hypothèse refusée. Autre proposition: les deux occurences du nombre 100 sont douteuses:

On a peu l'habiture de représenter des nombres en base 100

Le deuxième 100 est étonnant lui aussi



_itoa(Valeur,VTxt, 10);

TextOut(hDc, 50, 40, VTxt, lstrlen(VTxt));
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
22 mai 2005 à 20:51
ouaip c'est parce qu'il n'a pas compris les fonctions qu'il utilise j'pense
itoa( ... ) converti un entier en chaine de caractère dans la base donnée
Nous on utilise la base 10 parce que on a 10 doigts...
Apres ya le binaire , 2
L'héxa 16 fin bref s'que tu veux

TextOut(...)
HDC -> DC sur lequel on écrit
x -> Abscisse
y -> Ordonnée
LPCTSTR -> Chaine de caractère
int -> Nombre de caractere à afficher

Si tu a une chaine de 18 caractere et tu en affiches 100, il va t'écrire plein de drole de caractère rigolo lol


void Aurevoir( void ); //Bonne journée
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
23 mai 2005 à 09:15
SCREEN-- CODE



ça ne résolu pas mon problème ... non .

je viens de faire des tests , et ce n'est pas itoa qui fait le problème
, mais juste le fait d'utiliser des valeurs numériques ... enfin je
pense (0)



regardez ce code bidouillé vite fait : CODE B.

Je suis qu'un pitit programmeur en herbe ...
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
23 mai 2005 à 09:53
char VTxt[] =
"0"; et non char* VTxt = "0"
Pourquoi ça je ne sais pas, mais en tout cas c'est comme ça ;)

void Aurevoir( void ); //Bonne journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 mai 2005 à 11:18
Et encore, char VTxt[0] ne va réserver que deux places, si après on
veut écrire un nombre plus long ca va poser problème. Plutot faire char
VTxt[32] = "0";
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
23 mai 2005 à 17:28
oulà.... reprennons depuis la début



dans mon programme il y a (et aura) :

- 4 boutons (quitter,réduire,+ et -) , 2 faits

- 1 trait , OK

- 1 DrawText pour afficher "Valeur" , pas de problème

- 1 TextOut pour afficher la valeur de la convertion de int to char "VTxt" converti de "Valeur"



les boutons + et - serviront évidemment à augmenter ou diminuer la valeur de "Valeur"

donc j'utilise itoa() mais ça ne marche pas (erreur , voir screen precedente)

c'est cette histoire de int qui bogue ... têtu c'est pas vrai !!



c'est plus clair maintenant ?


Je suis qu'un pitit programmeur en herbe ...
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
23 mai 2005 à 18:11
http://rafb.net/paste/results/5Ail7M23.html


void Aurevoir( void ); //Bonne journée
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
23 mai 2005 à 18:18
non merci pour le code c'est pas marqué "débile" sur mon front (non mais!)

c'était donc "static" ...

t'a oublié un détail ! il faut redessiner la fenêtre quand on clique sur + ou - car ça ne se fait pas tout seul !

bon je termine le programme sur les details ...



<small>InvalidateRect(hWnd,NULL,TRUE);</small>



Je suis qu'un pitit programmeur en herbe ...
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
23 mai 2005 à 18:27
yes ! super nickel !!



CODE

PROGRAMME



maintenant les autres contôles ... d'abord les devoirs -_- >> bye ! et merci ^^


Je suis qu'un pitit programmeur en herbe ...
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
23 mai 2005 à 19:01
Bé InvalidateRect( ... )
Redessine ta fenêtre, tu pensais tout de même pas que j'allais oublié garcon :)
Et oui fait tes devoirs ;)
lol


void Aurevoir( void ); //Bonne journée
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
23 mai 2005 à 19:10
ok je suis de retour ... je fais ma discute habituelle sur MSN et je me replonge dans DEV-C++ ... dans 10 minutes

je suis sur les cadres

Je suis qu'un pitit programmeur en herbe ...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 mai 2005 à 19:10
Comme je l'ai dit plus haut, char VTxt[]="0" n'est pas bon, ca ne
réserve pas assez de place pour écrire un grand nombre. Dans ton
WM_COMMAND, tu devrais faire un switch(LOWORD(wParam)), c'est plus
lisible.

Et puis quand tu utilises des booléens enWin32, utiliser plutot TRUE et
FALSE à la place de true et false, ce n'est pas tout a fait la même
chose.

Tu peux aussi libérer les objects créés avec CreateSolidBrush et CreatePen
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
23 mai 2005 à 19:18
Je suis qu'un pitit programmeur en herbe ...
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
23 mai 2005 à 20:45
oups y'a eu un problème avec mon message...


je voulais dire que c'est pas grave tant que ça marche ...

bon là je suis avec mon cadre :




hwndCadre1 = CreateWindowEx(0,"BUTTON","blabla",WS_CHILD | WS_VISIBLE |
BS_GROUPBOX,70,75,80,85,hWnd, (HMENU) IDC_Cadre1
,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),NULL);



la problème c'est que ça me met la bordure en noir ... forcément noir
sur noir ... et le texte ça me met : texte sur fond bleu (défaut -
c'est mon style windows que j'ai mit quoi) + texte bleu plus foncé ...
faut que je change les couleurs texte et bordure et que j'ajoute de la
transparence...



SCREEN(le fond de texte ne se voit pas puisque c'est le même que le fond de la fenêtre , ça se voit en mode noir)



bon moi je vais me coucher , A++++ ! bye !




Je suis qu'un pitit programmeur en herbe ...
0
banane_rose Messages postés 302 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 22 avril 2006
24 mai 2005 à 20:12
UP ... ?

Je suis qu'un pitit programmeur en herbe ...
0
Rejoignez-nous