Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Empecher certain charactere dans une boite de texte [ Archives / API ] (PinkRabbit84)

mardi 28 décembre 2004 à 23:04:52 | Empecher certain charactere dans une boite de texte

PinkRabbit84

J'aimerai empecher l'utilisateur de taper certain charactere dans une boite de texte.

J'ai essayer d'intercepter les messages envoyer au TEXTBOX et en gardant l'adresse de l'ancienne WndProc mais lorsque ma nouvelle WndProc recoie le message WM_SETTEXT la ligne:

return CallWindowProc((WNDPROC)GetWindowLong(hWnd, GWL_USERDATA), hWnd, iMsg, wParam, lParam);

fait l'erreur suivante:
First-chance exception at 0x00000001 in BoxEdit.exe: 0xC0000005: Access violation reading location 0x00000001.

Merci d'avance

PinkRabbit

mardi 28 décembre 2004 à 23:17:02 | Re : Empecher certain charactere dans une boite de texte

AlexMAN

Membre Club
Tu sous classes, et lors de la reception du msg WM_CHAR, tu verifie les caracteres.

+2(p - n)

mardi 28 décembre 2004 à 23:20:37 | Re : Empecher certain charactere dans une boite de texte

AlexMAN

Membre Club
Au fait, c lorsk tu fais SetClassLong(...) pour sous classer kil te faut recuperer l'ancien WNDPROC de ton textbox :

//En global
WNDPROC oldproc;

oldproc = SetClassLong(..);

...
return CallWindowProc(olproc, hwnd, message, wparam, lparam);

Voila

+2(p - n)

mardi 28 décembre 2004 à 23:21:57 | Re : Empecher certain charactere dans une boite de texte

PinkRabbit84

c'est ca que j'essayais de faire, mais comem je l'ai explquer dans mon message,

return CallWindowProc((WNDPROC)GetWindowLong(hWnd, GWL_USERDATA), hWnd, iMsg, wParam, lParam);

genere une erreur lorsque c'est le message WM_SETTEXT

LRESULT CALLBACK RenameProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{

return CallWindowProc((WNDPROC)GetWindowLong(hWnd, GWL_USERDATA), hWnd, iMsg, wParam, lParam);
}

tout les autres messages passent mais pas lui... quelqu'un a un idee??


mardi 28 décembre 2004 à 23:33:40 | Re : Empecher certain charactere dans une boite de texte

AlexMAN

Membre Club
Atta, excuse moi, jme trompe ptet, mais c koi ca : GetWindowLong(hWnd, GWL_USERDATA) ??

Tu voudrais pas plutot mettre GWL_WNDPROC ?

+2(p - n)

mardi 28 décembre 2004 à 23:34:40 | Re : Empecher certain charactere dans une boite de texte

AlexMAN

Membre Club
Et pis dsl, mais c pas tout a fait ce ke je t'ai dit de faire plus haut...Avec ce ke je t'ai dit, c sur, tout marche.

+2(p - n)

mardi 28 décembre 2004 à 23:35:55 | Re : Empecher certain charactere dans une boite de texte

PinkRabbit84

Non c'est bien GWL_USERDATA que je voulais mettre, car j'ai garder l'addresse de l'ancienne WndProc dans le UserData de la fenetre

mardi 28 décembre 2004 à 23:48:06 | Re : Empecher certain charactere dans une boite de texte

vecchio56

Administrateur CodeS-SourceS
L'ancienne WndProc est donnée par l'appel de SetWindowLongPtr, comme te l'a dit AlexMan

mardi 28 décembre 2004 à 23:53:00 | Re : Empecher certain charactere dans une boite de texte

PinkRabbit84

Je sais ca, le probleme c'est pas ma function RenameProc. Elle marche! C'est quand elle recoie le message WM_SETTEXT que CallWindowProc deconne.

mardi 28 décembre 2004 à 23:56:23 | Re : Empecher certain charactere dans une boite de texte

vecchio56

Administrateur CodeS-SourceS
C'est bête d'appeler a chaque fois GetWindowLong plutot que d'utiliser une variable globale oldProc
Fais-tu quelque chose de spécial quand tu recois WM_SETTEXT?


1 2

Cette discussion est classé dans : texte, boite, certain, empecher, charactere


Répondre à ce message

Sujets en rapport avec ce message

Problèmes pour afficher un texte à une certain endroit dans la page (C++) [ par Nicolas ] Pourrais-t-on me dire comment faire en C++ sous Linux pour afficher un texte ou une partie de texte à une certaine osition (coordonnée).Pour Windows l Problèmes pour afficher un texte à une certain endroit dans la page (C++) [ par Nicolas ] Pourrais-t-on me dire comment faire en C++ sous Linux pour afficher un texte ou une partie de texte à une certaine osition (coordonnée).Pour Windows l Problèmes pour afficher un texte à une certain endroit dans la page (C++) [ par Nicolas ] Pourrais-t-on me dire comment faire en C++ sous Linux pour afficher un texte ou une partie de texte à une certaine osition (coordonnée).Pour Windows l Re : Passage de variables -MFC [ par marcel6566 ] Bonjour,J'ai deux boites de dialogues liées à deux classes.Je souhaiterais utiliser le contenu d'une variable obtenue dans la première boite de dialog Empecher de griser en mode Disable [Win32] [ par zibo3 ] Bonjour,J'utilise l'événement:WM_CTLCOLOREDIT pour définir la couleur de fond de mon champ Edit ainsi que de la couleur du texte. Malheureusement, je Prob Variables avec MFC [ par marcel6566 ] Mon application est une MDI avec un Splitter. De chaque coté des boite de dialogue de type FORMVIEW.Je souhaite passer des variables d'une boite de di Texte graphique drawtext() [ par jbmartinez ] J'ai créer un morpion avec des images en 3D en faisant apparètre du texte drawtexte() pour afficher le nombre de joueur, de partie, etc..Si un certain retour à la ligne pour une boite de texte [ par alphaone ] comment faire un retour à la ligne pour une boite de texte car \n ne marche pas! recupere du tette de l'editeur de texte d'une boite de dialogue et l'afficher sur une autre boite de dialogue [ par eklouste ] Slt Je suis debutant en visual c++ et j'aimerais savoir par exemple comment recuperer du texte dans l'editeur de texte d'une boite de dialogue et l'af utilisation setwindowtext pour afficher sur une boite de dialogue [ par eklouste ] Slt a tousEn fait j'ai cree deux boite de dialogue A et B. Je veux recuperer du texte du control edit  de boite de dialogue A et l'afficher ce texte  


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 1,451 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.