Accueil > Forum > > > > [API][WIN32] Enregistrement de classe de fenêtre
[API][WIN32] Enregistrement de classe de fenêtre
vendredi 28 mai 2004 à 17:50:31 |
[API][WIN32] Enregistrement de classe de fenêtre

Jeffray
|
Bonjour, J'ai un problème pour enregistrer une classe de fenêtre. J'utilise GetClassInfoEx() pour extraire les infos de la classe EDIT créée par Windows. Ensuite je modifie certains paramètres et j'essaye d'enregistrer cette classe de fenêtre. Voici le code :
WNDCLASSEX wc; if(GetClassInfoEx(NULL, "EDIT", &wc) != 0) { MaFenetre->oldProc = wc.lpfnWndProc; wc.lpfnWndProc = (WNDPROC)EdProc; wc.lpszClassName = "MonEdit"; if( ! RegisterClassEx(&wc) ) { ... // GetLastError() }
|
Lorsque je compile, pas de problème : aucun warning, aucune erreur. Lorsque j'éxécute, GetLastError() me dit : paramètre incorrect. Je ne peux pas faire un sous-classement classique (avec SetWindowLong) car la procédure de sous classement est une fonction membre statique d'une classe, et j'ai besoin d'accèder à un pointeur d'objet dans cette fonction. Quelqu'un auraît une idée ? Merci !
|
|
samedi 29 mai 2004 à 09:05:47 |
Re : [API][WIN32] Enregistrement de classe de fenêtre

Jeffray
|
Bonjour, Pour info : j'ai réussi à régler le problème de l'enregistrement de la classe modifiée : il suffit de définir le paramètre cbSize de la structure WNDCLASSEX avant l'appel de la fonction GetClassInfoEx() : WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
if(GetClassInfoEx(NULL, "EDIT", &wc) != 0) etc...
|
Et accessoirement, redéfinir aussi le paramètre hInstance de cette même structure (après l'appel de GetClassInfoEx()). Maintenant, j'ai un autre problème : une fois cette classe enregistrée, je n'arrive pas à créer une fenêtre correspondante. J'ai identifié le problème : il ne trouve pas ma procédure de callback Edproc, et du coup ne créé pas la fenêtre. Si j'éxécute le code suivant : WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX);
if(GetClassInfoEx(NULL, "EDIT", &wc) != 0) { MaFenetre->oldProc = wc.lpfnWndProc;
wc.lpszClassName = "MonEdit"; wc.lpfnWndProc = (WNDPROC)EdProc;
RegisterClassEx(&wc); } HWND ThehWnd = CreateWindowEx( WS_EX_OVERLAPPEDWINDOW, "MonEdit", NULL, ES_LEFT | WS_CHILD | WS_BORDER | ES_MULTILINE, 20, 85, 430, 120, hWnd, (HMENU)ID_CHAINE, hProgInstance, 0 );
if( ! ThehWnd ) { RetourneErreur(); // GetLastError() }
|
GetLastError() me retourne : "Le fichier spécifié est introuvable" Il suffit que je mette la ligne suivante en commentaire : wc.lpfnWndProc = (WNDPROC)EdProc;
|
Et plus d'erreur, l'edit est bien créé et apparraît... La fonction EdProc est un membre statique de classe. Help please :o)
|
|
samedi 29 mai 2004 à 13:00:15 |
Re : [API][WIN32] Enregistrement de classe de fenêtre

Jeffray
|
Bon, je ne comprends pas... çà ne veut pas fonctionner. C'est vraiment bizarre, d'autant plus étrange, que je fais exactement la même chose quelques lignes au dessus pour créer ma 1ère fenêtre, et çà marche. Et la meilleure dans tout çà, c'est que j'ai trouvé des exemples sur le net qui expliquent exactement ce que je suis en train de faire (le superclassing, ou surclassement en français). Mais non, il ne veut pas prendre en compte ma fonction EdProc. Et çà n'a rien à voir avec le fait que ce soit une fonction membre statique, car j'ai essayé avec une fonction globale et çà fait pareil...
Si quelqu'un a une idée, là c'est le moment, car je suis à cours...
|
|
dimanche 30 mai 2004 à 18:23:41 |
Re : [API][WIN32] Enregistrement de classe de fenêtre

Jeffray
|
Si par hasard quelqu'un tombe un jour sur ce topic, je vais donner la solution.
Après m'être arraché les cheveux une bonne centaine de fois, et après une petite restructuration de mon code, qui au passage, n'a pas fait de mal, la solution m'est venue d'un coup.
En fait je fais de la POO pure, c'est à dire sans aucune variable globale. Il suffisait en fait de déclarer le membre oldProc de la classe en question static. Sans cela, çà ne fonctionnait pas. Et pourtant, à la compilation çà passait nickel, aucun warning, aucune erreur. C'est à l'éxécution que çà plantait.
Voilà, merci de votre soutien :o)
|
|
Cette discussion est classée dans : code, classe, fenêtre, api, wc
Répondre à ce message
Sujets en rapport avec ce message
opengl bug [ par darmoor ]
Voila je vien de debuter dans l'openGL et selon le tutorial jai fait ce qu'il falai et sa me marque une erreur:le code:#include #includ
[API windows] Redimmensionner une fenêtre [ par lucelabrute ]
Bonjour, j'aimerais qu'aprés selection dans une combo box, la fenêtre s'agrandisse ou se reduise automatiquement, j'ai lu un peu et j'ai trouvé SetWin
Fenêtre en premier plan sans focus [ par thenaoh ]
Bonjour, Je cherche depuis plusieurs jours à afficher une application de mon cru (une appli AIR) en premier plan, mais sans qu'elle prenne le focus a
Polumorphisme pointeur [ par yvesyves ]
Bonjour, Admettons : [code=cpp]class A { private : .... protected : void Insertapres(A * nouveau, A * source = this){.....} }; classe B
Cast void* - objet C++ [ par zaraki21 ]
Bonjour, Je travaille actuellement sur un projet en C/C++ dans lequel je souhaite "caster" un membre d'une classe de type void* en un pointeur sur un
Tableaux... [ par pop70 ]
Bonjour, Je cherche à faire un petit jeu en 2D, Celui est constitué d'une Map, sur laquelle viennent se placer toutes sortes d'objets. Chaque objet
Question : Variables static/méthode static/initialisation [ par Inutqen ]
Bonjour à tous, j'ai besoin d'un coup de main :) J'ai un petit soucis avec un code C++, je suppose que la réponse à ma question se trouve quelque par
Pointeur vers des fonctions membres d'une classe [ par thoflo1 ]
Bonjour, J'utilise une méthode d'une classe issue d'une librairie c++, qui prend un pointeur vers une fonction en argument : [code=cpp] typedef void (
Utilisation des classes [ par andrebernard ]
Bonjour à tous Voila je viens de découvrir que les contrôles sont créés par la même classe que les fenêtres [^^peur] [code=cpp]WNDCLASS wc; wc.c
FindWindow et nom de classe ? [ par italiasky ]
Bonjour, Dans la fonction FindWindow (http://msdn.microsoft.com/en-us/library/ms633499%28VS.85%29.aspx), le premier paramètre est le nom de classe et
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|