begin process at 2012 02 10 03:35:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Empecher certain charactere dans une boite de texte


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

Empecher certain charactere dans une boite de texte

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ée 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 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   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!


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 : 0,764 sec (4)

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