CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

(MFC) CComboBox

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 18:05:01

J´ai un probleme : j´utilise dans une boite de dialogue unr ComboBox et j´ai mi en donné membre ataché pour cet objet un CComboBox et un CString.

Lorsque je manipule ma combo box, je doit sauvegarder le changement dans le CString ( UpdateData(true)) et faire des chose avec ce CString ( en l´ocurence parcourir un dossier portant ce nom affin de chercher tout les objets dedant).

Mon probleme, c´est que ma variable ne change pas entre le updatedata et mon utilisation, je suis obligé d´utiliser un bouton pour cela... :(

Je vous demande votre aide, car le projet est a rendre pour demain, et ce detail fait tache sur le reste du projet.

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 18:54:39

Je sais que sa fait mon d´une heure que j´ai posté, mais mon probleme est urgent !
Please help me . ..

Altonfrere
Altonfrere
Niveau 10
07 avril 2004 à 18:56:59

Pourquoi ne pas surchager l´événement CBN_SELCHANGE ?

lag-it
lag-it
Niveau 10
07 avril 2004 à 19:00:58

C´est dans le cadre de quoi que tu fais ca Ruffi ?

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:05:00

En fait, j´utilise tous les evenements lié a ma combo-box. Mais je me suis aperçut que le updatedata n´est pas immediat ( géré par windows quand il a du temps ou dans un thread... je sais pas). C´est ça qui m´embete car cela ne me permet pas d´utilier mon CString dans les fonctions lié a cette combo box.
Je surcharge les message suivant : CBN_EDITCHANGE, CBN_CLOSEUP, CBN_DBLCLK... en bref, tout les message possible...

Altonfrere
Altonfrere
Niveau 10
07 avril 2004 à 19:06:43

CBN_SELCHANGE est appelé lorsque tu choisis un nouvel item ( différent de celui en cours) dans la Combo, donc a priori tu devrais pouvoir faire ton traitement dans cette fonction.

Altonfrere
Altonfrere
Niveau 10
07 avril 2004 à 19:07:41

UpdateData s´effectue en effet à la fin de la fonction en cours d´exécution ( c´est pas du multi-thread mais une boucle d´événements).

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:08:31

C´est dans le cadre de mon projet tutoré. Un logiciel de planification d´intervention pour les pompier de Marseille. Cette boite de dialiogue sert a choisir les icones selon une certaine categorie ( qui est en fait le nom du repertoir) et d´afficher ces icones dans la boite afin que l´utilisateur puisse le poser sur la carte. C´est une piece du puzzle, mais quand une piece est mal mise, sa tache le reste

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:11:08

voici mon code :
void CThumbNailDlg::OnChoixCategorie()
{
UpdateData(true);
m_cThumbFrame.InitializeVariables( 30,30 ) ;

CString rep="icones/";
int index=m_categorie.GetCurSel();
MessageBox(rep);
rep+=m_categorie_affiche;
Ajout_recursif(rep);

InvalidateRect(NULL);
}

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:12:04

le " int index=m_categorie.GetCurSel(); " , c´est car je suis en train de tester une autre façon

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:14:34

et le messagebox, c´est pour verifier le nom du repertoir ( ce qui m´indique que le updatedata n´est pas immediat)

Altonfrere
Altonfrere
Niveau 10
07 avril 2004 à 19:17:03

Où est le problème exactement ?

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:20:58

Ben il me cherche dans le repertor qui est dans le CString, mais etant doné qu´il n´a pas été mis a jour, sa recherche dans le repertoir precedement selectioné

Altonfrere
Altonfrere
Niveau 10
07 avril 2004 à 19:21:58

tu as mis quoi dans DoDataExchange pour m_categorie_affiche ?

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:23:38

j´ai rien touché, il me l´a fait par defaut :

void CThumbNailDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CThumbNailDlg)
DDX_Control(pDX, IDC_COMBO2, m_categorie);
DDX_Text(pDX, IDC_MSG, m_sMsg);
DDX_CBString(pDX, IDC_COMBO2, m_categorie_affiche);
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_FRAME_THUMB, m_cThumbFrame);

}

Altonfrere
Altonfrere
Niveau 10
07 avril 2004 à 19:27:31

ok alors ya un bug :)

Dans les messages que tu as détourné de la ComboBox est ce qu´il n´y aurait pas des cas où tu écraserais/modifierais m_categorie_affiche ou la sélection ou je ne sais quoi . .. ?

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:30:47

Non, j´ai fait un copier-coller du premier vers les autres. Mais je pese pas que sa bug, c´est juste que l´echange de donné ne s´est pas faite ( dans le messagebox il m´affiche pas le nouveau nom)

Altonfrere
Altonfrere
Niveau 10
07 avril 2004 à 19:32:19

Si l´échange se fait très bien ( enfin devrait e faire). Mais si tu parles de la messagebox de la fonction, tu l´éxecutes avant de faire le += . .. ! c´est peut être normal :)

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:33:01

Et puis si je reselectionne une autre categorie, il me met bien la categorie que j´avais choisi la fois precedente

Ruffi
Ruffi
Niveau 9
07 avril 2004 à 19:35:11

Pour la messagebox, c´est parceque j´ai poster une version de debug. Mais là je vien de la remetre apres le += et sa affiche l´ancien repertoir

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment