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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Magic
Entre 429€ et 429€
|