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 : API :: Gestion de plusieurs fenetres [ Archives / API ] (JackosKing)

mardi 24 juin 2003 à 15:44:53 | API :: Gestion de plusieurs fenetres

JackosKing

Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion des messages...
j'ai qu'une seule fonction:
long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
et dedant je doit faire un compraison de HWDN..
genre: if (hWnd = hWnd4)...
le probleme etant que les comparaison deviennenet tres vite lourde (meme pas optimisable par un switch car le nombre n'est pas constant.
je voulais savoir si il etait possible de generer une fonction: long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) pour chaque fenetre, sans avoir a fair soit meme la coparaison des hWnd

vlà thx:)



JackosKing For EvEr

mardi 24 juin 2003 à 16:05:36 | Re : API :: Gestion de plusieurs fenetres

BruNews

Administrateur CodeS-SourceS
Faut leur definir un type de comportement et en fonction de cela faut les sous classer immediatement vers une callback specifique.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion des messages...
> j'ai qu'une seule fonction:
> long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
> et dedant je doit faire un compraison de HWDN..
> genre: if (hWnd = hWnd4)...
> le probleme etant que les comparaison deviennenet tres vite lourde (meme pas optimisable par un switch car le nombre n'est pas constant.
> je voulais savoir si il etait possible de generer une fonction: long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) pour chaque fenetre, sans avoir a fair soit meme la coparaison des hWnd
>
> vlà thx:)
>
>
>
> JackosKing For EvEr

mardi 24 juin 2003 à 23:28:02 | Re : API :: Gestion de plusieurs fenetres

JackosKing

??
le comportement, je ne le connait pas , puisqu'il peu charger n'importe quel plug.. pour le callback.. je comprend pas:(

perso j'ai fait qqc dans ce genre:
WndProc..
{
for (in i = 0; i<n; i++)
{
WNDPROC(i);
}

mais je trouve pas ca top :(
JackosKing For EvEr


-------------------------------
Réponse au message :
-------------------------------

> Faut leur definir un type de comportement et en fonction de cela faut les sous classer immediatement vers une callback specifique.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion des messages...
> > j'ai qu'une seule fonction:
> > long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
> > et dedant je doit faire un compraison de HWDN..
> > genre: if (hWnd = hWnd4)...
> > le probleme etant que les comparaison deviennenet tres vite lourde (meme pas optimisable par un switch car le nombre n'est pas constant.
> > je voulais savoir si il etait possible de generer une fonction: long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) pour chaque fenetre, sans avoir a fair soit meme la coparaison des hWnd
> >
> > vlà thx:)
> >
> >
> >
> > JackosKing For EvEr
>

mardi 24 juin 2003 à 23:38:04 | Re : API :: Gestion de plusieurs fenetres

BruNews

Administrateur CodeS-SourceS
une fenetre doit avoir un pointeur sur fonction callback pour RegisterClass(), c'est la wndproc qu'on lui definit. Il est possible de le changer par:
oldproc = SetWindowLong(hwnd, GWL_WNDPROC, newproc);
ce qu'on appelle sous classement.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> ??
> le comportement, je ne le connait pas , puisqu'il peu charger n'importe quel plug.. pour le callback.. je comprend pas:(
>
> perso j'ai fait qqc dans ce genre:
> WndProc..
> {
> for (in i = 0; i<n; i++)
> {
> WNDPROC(i);
> }
>
> mais je trouve pas ca top :(
> JackosKing For EvEr
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Faut leur definir un type de comportement et en fonction de cela faut les sous classer immediatement vers une callback specifique.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion des messages...
> > > j'ai qu'une seule fonction:
> > > long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
> > > et dedant je doit faire un compraison de HWDN..
> > > genre: if (hWnd = hWnd4)...
> > > le probleme etant que les comparaison deviennenet tres vite lourde (meme pas optimisable par un switch car le nombre n'est pas constant.
> > > je voulais savoir si il etait possible de generer une fonction: long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) pour chaque fenetre, sans avoir a fair soit meme la coparaison des hWnd
> > >
> > > vlà thx:)
> > >
> > >
> > >
> > > JackosKing For EvEr
> >
>

mercredi 25 juin 2003 à 00:24:21 | Re : API :: Gestion de plusieurs fenetres

JackosKing

donc si j'ai bien compris:):
Pour le moment toutes mes fenêtres sont gérée par le wndproc défini par la classe au début du programme..
Néanmoins a chaque fenêtre étant défini un hWnd, je peux definir une autre wndproc par la fonction cité précédemment?

Si c'est ça, alors c'est #top#

NB: à quoi sert d'enregistrer le oldproc?


JackosKing For EvEr


-------------------------------
Réponse au message :
-------------------------------

> une fenetre doit avoir un pointeur sur fonction callback pour RegisterClass(), c'est la wndproc qu'on lui definit. Il est possible de le changer par:
> oldproc = SetWindowLong(hwnd, GWL_WNDPROC, newproc);
> ce qu'on appelle sous classement.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > ??
> > le comportement, je ne le connait pas , puisqu'il peu charger n'importe quel plug.. pour le callback.. je comprend pas:(
> >
> > perso j'ai fait qqc dans ce genre:
> > WndProc..
> > {
> > for (in i = 0; i<n; i++)
> > {
> > WNDPROC(i);
> > }
> >
> > mais je trouve pas ca top :(
> > JackosKing For EvEr
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Faut leur definir un type de comportement et en fonction de cela faut les sous classer immediatement vers une callback specifique.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion des messages...
> > > > j'ai qu'une seule fonction:
> > > > long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
> > > > et dedant je doit faire un compraison de HWDN..
> > > > genre: if (hWnd = hWnd4)...
> > > > le probleme etant que les comparaison deviennenet tres vite lourde (meme pas optimisable par un switch car le nombre n'est pas constant.
> > > > je voulais savoir si il etait possible de generer une fonction: long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) pour chaque fenetre, sans avoir a fair soit meme la coparaison des hWnd
> > > >
> > > > vlà thx:)
> > > >
> > > >
> > > >
> > > > JackosKing For EvEr
> > >
> >
>

mercredi 25 juin 2003 à 00:31:46 | Re : API :: Gestion de plusieurs fenetres

BruNews

Administrateur CodeS-SourceS
et oui le sous classement est super top.
Mais enregistre bien la oldproc pour pouvoir l'appeler ou la restituer si besoin.
Pas besoin de variable supplementaire, tu peux coller ce pointeur dans le membre cbWndExtra par exemple, encore faut-il le demander au systeme.
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> donc si j'ai bien compris:):
> Pour le moment toutes mes fenêtres sont gérée par le wndproc défini par la classe au début du programme..
> Néanmoins a chaque fenêtre étant défini un hWnd, je peux definir une autre wndproc par la fonction cité précédemment?
>
> Si c'est ça, alors c'est #top#
>
> NB: à quoi sert d'enregistrer le oldproc?
>
>
> JackosKing For EvEr
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > une fenetre doit avoir un pointeur sur fonction callback pour RegisterClass(), c'est la wndproc qu'on lui definit. Il est possible de le changer par:
> > oldproc = SetWindowLong(hwnd, GWL_WNDPROC, newproc);
> > ce qu'on appelle sous classement.
> > BruNews, ciao...
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > ??
> > > le comportement, je ne le connait pas , puisqu'il peu charger n'importe quel plug.. pour le callback.. je comprend pas:(
> > >
> > > perso j'ai fait qqc dans ce genre:
> > > WndProc..
> > > {
> > > for (in i = 0; i<n; i++)
> > > {
> > > WNDPROC(i);
> > > }
> > >
> > > mais je trouve pas ca top :(
> > > JackosKing For EvEr
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Faut leur definir un type de comportement et en fonction de cela faut les sous classer immediatement vers une callback specifique.
> > > > BruNews, ciao...
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion des messages...
> > > > > j'ai qu'une seule fonction:
> > > > > long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
> > > > > et dedant je doit faire un compraison de HWDN..
> > > > > genre: if (hWnd = hWnd4)...
> > > > > le probleme etant que les comparaison deviennenet tres vite lourde (meme pas optimisable par un switch car le nombre n'est pas constant.
> > > > > je voulais savoir si il etait possible de generer une fonction: long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) pour chaque fenetre, sans avoir a fair soit meme la coparaison des hWnd
> > > > >
> > > > > vlà thx:)
> > > > >
> > > > >
> > > > >
> > > > > JackosKing For EvEr
> > > >
> > >
> >
>

mercredi 25 juin 2003 à 00:52:04 | Re : API :: Gestion de plusieurs fenetres

JackosKing

ok thx:)
JackosKing For EvEr


-------------------------------
Réponse au message :
-------------------------------

> et oui le sous classement est super top.
> Mais enregistre bien la oldproc pour pouvoir l'appeler ou la restituer si besoin.
> Pas besoin de variable supplementaire, tu peux coller ce pointeur dans le membre cbWndExtra par exemple, encore faut-il le demander au systeme.
> BruNews, ciao...
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > donc si j'ai bien compris:):
> > Pour le moment toutes mes fenêtres sont gérée par le wndproc défini par la classe au début du programme..
> > Néanmoins a chaque fenêtre étant défini un hWnd, je peux definir une autre wndproc par la fonction cité précédemment?
> >
> > Si c'est ça, alors c'est #top#
> >
> > NB: à quoi sert d'enregistrer le oldproc?
> >
> >
> > JackosKing For EvEr
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > une fenetre doit avoir un pointeur sur fonction callback pour RegisterClass(), c'est la wndproc qu'on lui definit. Il est possible de le changer par:
> > > oldproc = SetWindowLong(hwnd, GWL_WNDPROC, newproc);
> > > ce qu'on appelle sous classement.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > ??
> > > > le comportement, je ne le connait pas , puisqu'il peu charger n'importe quel plug.. pour le callback.. je comprend pas:(
> > > >
> > > > perso j'ai fait qqc dans ce genre:
> > > > WndProc..
> > > > {
> > > > for (in i = 0; i<n; i++)
> > > > {
> > > > WNDPROC(i);
> > > > }
> > > >
> > > > mais je trouve pas ca top :(
> > > > JackosKing For EvEr
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Faut leur definir un type de comportement et en fonction de cela faut les sous classer immediatement vers une callback specifique.
> > > > > BruNews, ciao...
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion des messages...
> > > > > > j'ai qu'une seule fonction:
> > > > > > long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam)
> > > > > > et dedant je doit faire un compraison de HWDN..
> > > > > > genre: if (hWnd = hWnd4)...
> > > > > > le probleme etant que les comparaison deviennenet tres vite lourde (meme pas optimisable par un switch car le nombre n'est pas constant.
> > > > > > je voulais savoir si il etait possible de generer une fonction: long WINAPI WndProc (HWND hwnd, UINT message, UINT wParam, LONG lParam) pour chaque fenetre, sans avoir a fair soit meme la coparaison des hWnd
> > > > > >
> > > > > > vlà thx:)
> > > > > >
> > > > > >
> > > > > >
> > > > > > JackosKing For EvEr
> > > > >
> > > >
> > >
> >
>



Cette discussion est classé dans : fonction, long, gestion, hwnd, uint


Répondre à ce message

Sujets en rapport avec ce message

gestion du clavier [ par Myts ] SalutJe programme sous TC++ (turbo c++) sous dos.Et j'ai un probleme concernant la gestion du clavier.Mon jeux, prochainement sur ce site, doit effect gestion multi utlisateur [ par marelo87 ] bonjour,j ai deux question:- j aimerais savoir comment faire "attendre" une fonction. dans un programme le serveur doi recevoir desdonnées taper par l thread sur WndProc [ par kidpigeyre ] G une fonction WndProc chargé de réaliser tout mon programme (application GUI) (avec fenetre windows) et jmerai pouvoir faire un thread de cette fonct api :: SetWindowLong(hWnd, GWL_WNDPROC, Twiny::WndProc); probleme:( [ par JackosKing ] Voilà je voulais utilisé cette fonction comme on me l'avait conseillé, mais j'ai une erreure:E:\TinyShell\Twiny.cpp(56) : error C2664: 'SetWindowLongA HWND Fonction [ par Crew209 ] Crew209J'arive pas a utilisé vos fonction :'( ! pouvez vous détaillé chaque param svp ?? Merci BOCOUP ! Probleme de Timer avec SetCursorPos [ par Maegis ] Voila je fais une appli Win32 qui necesite l'emploi d'un timerLe probleme c'est que je ne recois jamois le message WM_TIMER ,en fait je le recois si j Utilisation d'une fonction callback [ par laurentl2000 ] Bonjour, Voici une fonction callback destinée à envoyer les titres des fenêtres IE ouvertes dans une listbox... BOOL CALLBACK EnumWindowsProc(HWND hwn Mélange entre C++ et Win32 [ par vecchio56 ] J'ai décidé d'encapsuler mes fenêtres dans des classes, mais je me trouve confronté à un problème: en gros je n'arrive pas à changer de WndProc en uti Gestion des couleurs [ par lilington ] salut j'aimerai savoir s'il existe une fonction pour convertire 3 teintes de couleurs en index: j'utilise la fonction SetPixel(Hwnd,int,int,index); Fonction qui recupere le HWND du prog courrant...??? [ par youpiyoyo ] j'aurai besoin de recupere le HWND,je sais ke l'on peut le mettre en global du genreLRESULT CALLBACK DlgMainProc(HWND hwnd, UINT msg, WPARAM wParam, L


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

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



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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 : 0,265 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é.