Accueil > Forum > > > > Edit Box
Edit Box
mercredi 21 mai 2008 à 16:10:23 |
Edit Box

iMouss
|
Salut tout le monde J'ai une edit box contenant une variable membre : m_var de type CString j'aimerais que lors de la saisie de l'utilisateur, il sa fasse un espacement automatique tout les deux caracteres (s'il tape 123456, il faut que ça affiche 12 34 56) J'espere que vous pourrez m'aider Merci
|
|
mercredi 21 mai 2008 à 19:45:06 |
Re : Edit Box

iMouss
|
Please un peu d'aide ceux qui savent 
|
|
mercredi 21 mai 2008 à 20:20:19 |
Re : Edit Box

BruNews
|
Manque une info: en cas de "123" tu veux "1 23" ou "12 3" ?
Je pourrais te le faire sur du char[], je ne pratique pas le prémaché.
ciao... BruNews, MVP VC++
|
|
mercredi 21 mai 2008 à 20:29:15 |
Re : Edit Box

iMouss
|
je pensait que cétai assé préci comme cétait exposé en fait, sil tape 123 ca affiche "12 3". si ça avait été "1 23" alors j'aurais pas dit "tout les deux caracteres" sachant que le premier ce serai retrouvé forcément seul...
|
|
mercredi 21 mai 2008 à 21:37:02 |
Re : Edit Box

BruNews
|
Ne le prends pas mal, ce n'est pas une attaque contre toi, bien au contraire.
"variable membre : m_var de type CString" et autres biniouteries de ce genre, tu crois vraiment que c'est avec toutes ces surcouches masquant le code que tu sauras te débrouiller en dev ? Apprends à manier tableaux et pointeurs, entraine toi jusqu'à ce que ça devienne aussi naturel que de respirer et tu verras que tu n'auras plus jamais à poser ce type de question, ce sera résolu plus vite que de l'écrire.
Voila exemple sur une dialog avec 2 EDIT:
HWND htxt = 0, hres = 0; void OnEdChange() { char *pmem, *c, *d, a; DWORD len; SetWindowText(hres, 0); len = GetWindowTextLength(htxt); if(!len) return; pmem = HeapAlloc(GetProcessHeap(), 0, len + len / 2 + 1); if(!pmem) return; c = pmem; // POINTEUR SUR DEBUT DU TEXT MIS EN FIN DE BUFFER if(len > 2) c += (len / 2); GetWindowText(htxt, c, len + 1); if(len < 3) goto okTXT; d = pmem; // POINTEUR DE REECRITURE len = 0; while(a = *c++) { if(++len > 2) {*d++ = 32; len = 1;} *d++ = a; } *d = 0; okTXT: SetWindowText(hres, pmem); HeapFree(GetProcessHeap(), 0, pmem); } BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam) { switch(mssg) { case WM_INITDIALOG: SetClassLongPtr(hdlg, GCLP_HICON, (long)LoadIcon(0, IDI_APPLICATION)); htxt = GetDlgItem(hdlg, IDED_TXT); hres = GetDlgItem(hdlg, IDED_RES); return 1; case WM_COMMAND: switch(wParam) { case 0x30003E9: // EN_CHANGE = 0x300, IDED_TXT = 1001 OnEdChange(); break;; case IDCANCEL: EndDialog(hdlg, 0); } } return 0; }
et je te promets que je ne me suis pas abimé un neurone sur ce coup. Il faut absolument t'y mettre, tu as tout à y gagner.
ciao... BruNews, MVP VC++
|
|
jeudi 22 mai 2008 à 16:31:49 |
Re : Edit Box

iMouss
|
Salut merci pour ta reponse, Je n'ai pas bien examiné le code que tu m'a passé, mais j'aurai aimé savoir ce que fait ton code ou bien ce que tu ferais dans le principe plutot que de me preter un sympathique parchemin a dechifrer  .
|
|
jeudi 22 mai 2008 à 18:47:35 |
Re : Edit Box

BruNews
|
Ce code fait précisément ce qui était demandé. Au fur et à mesure que l'EDIT où on tape change, l'autre EDIT reçoit le texte formaté comme tu l'as demandé. Je te mets le projet complet ici: http://brunews.com/Separ.zipciao... BruNews, MVP VC++
|
|
vendredi 23 mai 2008 à 11:56:21 |
Re : Edit Box

iMouss
|
Ouille Ouille Ouille ! Merci encore, je viens de regarder plus ou moin en détail le code et ce qu'il faisait, bon au passage je pense qu'au niveau des pointeurs je maitrise assez bien, je sais tres bien comment ils fonctionnent et je te remercie d'ailleur de tes conseils au cas ou je n'étais pas averti de leur utilisations;
Alors a ce que je vois tu a créé tou plein de pointeurs et utilisé l'allocation dynamique sur la pile (où perso j'aurai utilisé un New pour sa performance et sa simplicité d'utilisation) pour pouvoir finalement placer des espaces entre les caracteres dans une autre editbox, ça je doit dire c la solution facile, mais malheuresement je ne peu pa fair ça :(
Bon sinon les binouterie du genre CString, elles masquent le code c vrai :S, mais elles sont bien plus pratique a l'utilisation.
voila le meme code sans pointeurs, sans allocations, sans trop de variable supplementaire, et en le lisant on croirai lire du francais tellment c explicite :
void OnEdChange() { this->UpdateData();//vers variables int len=m_ATQA.GetLength(); m_UID=""; int i, j=2; if (len>2) { for (i=0; i<len; i++) { m_UID.Insert(j,m_ATQA.GetAt(i)); if (i%2==1) m_UID.Insert(j++," "); j++; } } else m_UID=m_ATQA;
this->UpdateData(false); }
Avec les pointeur fo kan mm s'assurer de pointer au bon endroi, toujours passé d'un pointeur a lautre pour recopier l'adresse et fair les traitments, enfin bon... on s'en sort plus. Derrier ce code surment plein de cochoneries ki tournent et peu etre pas optimisé (meme si je pense qu'elles le sont quand meme un peu héhé), mé jsui pa a qq nanosecondes pres.
Je te dit merci encore pour ta solution, mais je vais continuer de chercher un pti peu. Si quelqu'un a une idée n'hésitez pas.
|
|
vendredi 23 mai 2008 à 12:07:05 |
Re : Edit Box

BruNews
|
Dernière info: 'new' finit après moultes vérifs chez HeapAlloc (tout comme malloc), la ligne droite étant toujours le plus court chemin, on ne peut pas parler de 'performances de new' par rapport à un appel direct HeapAlloc.
ciao... BruNews, MVP VC++
|
|
vendredi 23 mai 2008 à 12:07:05 |
Re : Edit Box

BruNews
|
Dernière info: 'new' finit après moultes vérifs chez HeapAlloc (tout comme malloc), la ligne droite étant toujours le plus court chemin, on ne peut pas parler de 'performances de new' par rapport à un appel direct HeapAlloc.
ciao... BruNews, MVP VC++
|
|
Cette discussion est classée dans : box, edit
Répondre à ce message
Sujets en rapport avec ce message
[VC++] Modifier le texte d'une edit box sur plusieurs lignes... [ par ndj55 ]
Salut à tous!Voila,je souhaiterais ecrire dans une edit box une chaine de caracteres,pour cela j'ai le code suivant:strcpy(info,"Prenom:\nNicolas\nAge
[VC++] Comment vider une edit box? [ par ndj55 ]
Salut!Je voudrais savoir comment je peux faire pour vider une edit box?Existe-t-il un message particulier???Merci d'avance!
Une calculatrice en C++ sous windows [ par Juan-Marco ]
Bonjour à tousVoila mon premier post sur ce forums Je connais bien les boucles, les variables et les structures. Je connais un peut moins les classes.
Multiligne et edit box [ par Xs ]
ca semble, a priori, trés simple de mettre le multiligne dans une edit box puisqu'il suffit de cocher l'option multligne dans VC++ 6.mais comment fait
slider et edit box sous visual c++ [ par a-sophie ]
j imagine que cela se fait facilement, mais je n arrive pas a faire communiquer un slider et une edit box.par ex le contenu de l edit box change en fo
afficher ou ne pas afficher une edit box en fonction des circonstances [ par sangokhan ]
Encore moi,Lorsque je selectionne un item ds ma listbox un commentaire correspondant a cet item doit apparaitre ds une edit bos situe pres de ma listb
fichier textedans edit box [ par rodrigos ]
Bonjour, je suis nouveau dans la programmation c++, et j'aimerai savoir comment afficher un fichier texte dans un dialog box.j'utilise cette fonctionS
dialog box avec edit ? [ par pruv3750 ]
salutJe travail avec visual studio .net, et j'aimerais savoir s'il existe une fonction pour affichier une boite de dialogue avec un edit box a l'inter
Fonctions Visual C++ + [ par RaZoR ]
Je suis en train de faire un programme et dedans il y a un Edit Box !! (dans lequel je met des resultats !!) Moi je voudrais savoir comment on fait po
edit box et couleur [ par agriva ]
Comment changer la couleur du texte s affichant dans un edit box (type CString)?Merci.@ude!
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|