begin process at 2012 02 10 08:54:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

SetDlgItemInt à la suite


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

SetDlgItemInt à la suite

mercredi 18 février 2004 à 03:41:56 | SetDlgItemInt à la suite

sacksith


Bonjour,

Après avoir déclaré et affecté une valeur à 2 variables globales,
je crée 1 boites de dialogues avec 2 fenetres edit dans lesquelles j'envoie les valeurs grâce à un SetDlgItemInt.

Pour remplir les 2 boites de dialogues, je fais 2 appels SetDlgItemInt à la suite avec les variables et WM_ID correspondant.
Le 1er appel SetDlgItemInt se passe sans problème : la valeur s'affiche dans la fenetre edit qui lui correspond.
Par contre, jamais la 2ème (valeur qui s'affiche est un zéro).

Pourriez-vous m'expliquer se qui s'est passé et comment y remédier ?
Merci
sacksith
mercredi 18 février 2004 à 07:55:18 | Re : SetDlgItemInt à la suite

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Se serai cool de pouvoir voir le source poru voir si il y a une erreur de convertion par exemple, ...


@+
Arnotic
Admin CS, MVP Visual C++
mercredi 18 février 2004 à 12:36:10 | Re : SetDlgItemInt à la suite

sacksith

Bonjour,
voilà en gros le code :
//Debut code

//variables globales
int var1=5;
int var2=7;
HWND B2;
LRESULT CALLBACK LCB2(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

//Window procedure
LRESULT CALLBACK WndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
//...
case WM_PAINT:
B2=CreateDialog(hInst, MAKEINTRESOURCE(B2BOX), CadreD, (DLGPROC)LCB2);
ShowWindow(B2, 1);
}

LRESULT CALLBACK LCB2(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch( uMsg )
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg, IDC_VAR1, var1, false);
SetDlgItemInt(hDlg, IDC_VAR2, var2, false);

// C'est là que ça me pose problème : le 2e SetDlgItemInt, celui avec var2, ne s'affiche pas dans la fenetre edit.
// Et quand j'inverse, que je met var2 en premier, c'est var1 qui ne s'affiche plus. Il doit y avoir un problème de réinitialisation de SetDlgItemInt, plus qu'un problème de d'erreur de conversion.
//Fin code

@+
sacksith



mercredi 18 février 2004 à 12:45:55 | Re : SetDlgItemInt à la suite

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Si tu veux mettre des les valeurs 5 et 7 n'utilise pas SetDlgItemInt car il va prendre la correspondance en ascii.

Utilise plutôt :

char szbuff[]='5';
SetWindowText(GetDlgItem(hDlg, IDC_VAR1), (char*)&szbuff);

szbuff = '7';
SetWindowText(GetDlgItem(hDlg, IDC_VAR2), (char*)&szbuff);

De cette manière c'est plus juste. Tu mets réellement la chaine 5, et 7 dans des textbox.

@+
Arnotic
Admin CS, MVP Visual C++
mercredi 18 février 2004 à 13:19:23 | Re : SetDlgItemInt à la suite

sacksith


Salut,
et tout d'abord merci pour la rapidité de tes réponses !

[...]
Oui mais voilà, si je veux justement afficher des valeurs entières.
En fait 5 et 7 sont des valeurs par défaut qui doivent s'afficher à l'ouverture de la fenetre mais l'utilisateur doit pouvoir les modifier.
d'où l'utilisation d'une fenetre edit.

dom
mercredi 18 février 2004 à 13:30:54 | Re : SetDlgItemInt à la suite

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Mais l'utilisateur peut modifier les valeurs même en utilisant SetWindowText.

Si tu veux récupérer les valeurs tu peux faire :

GetWindowText(GetDlgItem(hDlg, IDC_VAR1), (char*)&szbuff);
int var1 = atoi((char*)&szbuff);

Tu vois le truc ?
@+
Arnotic
Admin CS, MVP Visual C++
mercredi 18 février 2004 à 14:02:25 | Re : SetDlgItemInt à la suite

sacksith


Hi,

>>GetWindowText(GetDlgItem(hDlg, IDC_VAR1), (char*)&szbuff);
>>int var1 = atoi((char*)&szbuff);

Ok, je vois. Et je vais probablement garder cette solution.
Mais quand même, saurais-tu pourquoi on ne peut pas utiliser 2 appel à SetDlgItemInt à la suite ?

Dans le MS W32 reference, il est question de WM_SETTEXT.
Mais j'ignore comment l'utiliser. Si tu peux m'éclaircir.

@+
dom
mercredi 18 février 2004 à 14:11:45 | Re : SetDlgItemInt à la suite

Arnotic

Administrateur CodeS-SourceS
Bonjour,

Pour WM_SETTEXT c'est la même chose sauf que tu utilises

SendMessage(handle, WM_SETTEXT, NULL, (char*)&szbuff);

et pour récupérer

SendMessage(handle, WM_GETTEXT, 1024, (char*)&szbuff); et szbuff contient ta chaine.

(1024 = nombre maximum d'octects à copier)

Bref, SetWindowText et GetWindowText sont des macro de SendMessage et sont plus direct à utiliser comme tu veux c'est la même chose :)

@+
Arnotic
Admin CS, MVP Visual C++
mercredi 18 février 2004 à 14:16:42 | Re : SetDlgItemInt à la suite

sacksith


Salut,
Merci Arnotic pour tes éclaircissements. Je vais pouvoir continuer avec ce que j'ai.
dom
mercredi 18 février 2004 à 15:26:43 | Re : SetDlgItemInt à la suite

sacksith


Salut,

Après modifications et tests, voilà ce que je dois écrire pour pouvoir utiliser SetDlgItemInt.

//debut code
// Je garde tout ce qui précède, cf. posts précédents

LRESULT CALLBACK LCB2(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
unsigned var11=var1;
unsigned var22=var2;

switch(uMsg)
{
case WM_INITDIALOG :
SetDlgItemInt(hDlg, IDC_EVAPEDIT, var11, false);
SetDlgItemInt(hDlg, IDC_DIFFEDIT, var22, false);

//fin code
En gros, je dois créer des variables locales (var11 et var22) que j'initialise avec la valeur des variables globales var1 et var2.

C'est marrant de ne pouvoir utiliser 2 variables globales dans des SetDlgItemInt à la suite.

dom
PS je me demande toujours s'il n'existe pas une sorte de réinitialisation de SetDlgItemInt de manière à y appeler non pas des variables locales mais globales.



Cette discussion est classée dans : variables, valeur, boites, suite, setdlgitemint


Répondre à ce message

Sujets en rapport avec ce message

recuperation de variables deja enregistrées... [ par noSnoR ] j'aimerai pour un tout petit programme pouvoir enregistrer dans un char[] la valeur d'une variable enregistrée par le Ms-Dos (precision : je suis sous Plusieurs variables en une [ par CoQ87 ] Oui je sais c'est assez con mais je debute en c++ et je n'arrive pas à mettre le contenu de deux variables int a la suite (pas daddition, soustraction Lancement d'un programme par un autre programme et lui envoyer des variables [ par inquisitor87 ] Bonjour à tous,Je me permet de vous poser cette question car j'ai longuement cherché mais n'ai point trouvé. En fait, je suis actuellement en train de Comment récupérer une valeur définie par __int64 ? [ par Weedy_59 ] Voici mon problème, je voulais acquérir la taille d'un fichier de + 4Go donc j'ai demandé une aide car a cause du type 'unsigned long' j'étais limité Dans une String voir la valeur d'une variable [ par BIG_BOSS_001 ] Bonjour,Je cherche comment affiché dans une String la valeur d'une variable.Je sais que dans une application console ont fait:int i;i = 4;Console::Wri Récuperer la valeur de la variable passé via l'url d'une page web [ par thunderfear ] Bonjour,en fait j'aimerai faire un programme ki est tout le temps ouvert sur le pc et k'il attend de recevoir une info mais il doit vérifier s'il y a assigner des valeur à un "unsigned char" [ par supers03 ] Bonjour à tousJ'ai un petit(ou gros en fait) problème dans mon programme : j'ai dans mon code cette ligne :BYTE PATCH1[] = "\x90\x90\x90";et le progra unsigned long int [ par W@$h! ] saluje pense que tout le monde sait faire ça : int valeur = 4;printf("%i", valeur);mais quelqu'un peut'il me dire comment faire pour afficher un unsig Boites de dialogues type "enregistrer sous" [ par FleX2009 ] Bonjour, étant vraiment un newbie en C/C++, j'ai un petit problème : j'ai utilisé le tutorial de xbdev (à l'adresse : http://www.xbdev.net/3dformats/m Variables ? [ par psycotic93 ] Y a-t-il un moyen pour conaitre les varibles utilisées par un programme ( bien sur pas le notre ), voir meme les modifier ?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,342 sec (3)

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