RegisterAndCreateWindowEx

anarchysniper Messages postés 65 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 29 septembre 2005 - 9 févr. 2005 à 15:55
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 10 févr. 2005 à 00:48
J'ai fait une petite fonction pour rendre plus rapide l'enregistrement et la création des fenêtres dans mon code :



HWND RegisterAndCreateWindowEx (UINT style, WNDPROC lpfnWndProc,
HINSTANCE hInstance, HICON hIcon, HCURSOR hCursor, HBRUSH
hbrBackground, LPCTSTR lpszClassName, HICON hIconSm, DWORD dwExStyle,
LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int
nHeight, HWND hWndParent, HMENU hMenu, LPVOID lpParam)



{

HWND hWindowHandle ;



WNDCLASSEX WindowClassEx ;



WindowClassEx.cbSize = sizeof (WNDCLASSEX) ;

WindowClassEx.style = style ;

WindowClassEx.lpfnWndProc = lpfnWndProc ;

WindowClassEx.cbClsExtra = 0 ;

WindowClassEx.cbWndExtra = 0 ;

WindowClassEx.hInstance = hInstance ;

WindowClassEx.hIcon = hIcon ;

WindowClassEx.hCursor = hCursor ;

WindowClassEx.hbrBackground = hbrBackground ;

WindowClassEx.lpszMenuName = 0 ;

WindowClassEx.lpszClassName = lpszClassName ;

WindowClassEx.hIconSm = hIconSm ;



RegisterClassEx (&WindowClassEx) ;



hWindowHandle = CreateWindowEx (dwExStyle,
lpszClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight,
hWndParent, hMenu, hInstance, lpParam) ;



return hWindowHandle ;

}



Malgré la taille délirante de la fonction (19 arguments), elle marche à
merveille et permet de réutiliser plusieurs fois certaines données ce
qui accélère mon travail.



Mais n'existe-t-il pas une meilleure méthode comme l'externalisation
des paramètres relatifs à chaque fenetre dans un fichier de type .res ?
Si oui, comment procéder ? Et, si oui bien sûr, est-ce vraiment une
meilleure solution ?

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 févr. 2005 à 00:48
une func avec 19 params est une calamité en terme de performances, l'empilage (PUSH asm) est couteux.

enregistre toutes tes classes de fenetre au debut de ton prog et ainsi 1 seule WNDCLASSEX suffira
.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous