Bug API (des experts)

davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008 - 23 sept. 2005 à 09:01
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008 - 24 sept. 2005 à 02:44
Après des heures de recherche, j'arrive pas à comprendre pourquoi en vb
quand je crée un AUTORADIOBUTTON (option) avec l'api CreateWindowEx je
ne reçois pas le msg WM_CTLCOLORSTATIC! par contre j'ai deja detecté
les msg WM_PAINT, WM_LBUTTONDOWN...

et si on ne detect pas comment windows l'affiche avec background! et caption!!

Je ne comprend plus rien! (en c/c++ avec createwindow, on peut detecter WM_CTLCOLORSTATIC).



SVP les gens qui vont me dire passe de vb à c/c++ merci de s'abs... car je cherche une raison et pas zapper les choses ;)



hRadioButton = CreateWindowEx(WS_EX_TRANSPARENT,
"BUTTON", "Radio", WS_CHILD Or WS_TABSTOP Or WS_VISIBLE Or
BS_AUTORADIOBUTTON, 10, 10, 60, 20, hwnd, ByVal 0&, App.hInstance,
0&)

10 réponses

davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
23 sept. 2005 à 09:02
merci d'avance pour votre aide et pistes....
0
cs_darunia Messages postés 354 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 24 mars 2011 2
23 sept. 2005 à 10:07
Il me semble que ce message concerne seulement les static et les edit. De plus il faut que ces controles soient en lecture seule et/ou activé pour qu'ils puissent envoyer le message.

D@runia
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2005 à 10:07
WM_CTLCOLORBTN

ciao...
BruNews, MVP VC++
0
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
23 sept. 2005 à 15:33
merci darunia : comment les rendre en lecture seule et/ou activé? (par sendmessage?)

Merci BruNews : j'étais sur que tu vas me dire ça :), meme WM_CTLCOLORBTN marche pas :(, j'ai deja testé.

Je pense qu'il y a qlq chose pas normale!, une chose à activer ou chépa quoi!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2005 à 15:46
Pour tests, fais juste une fenetre avec ton radio button qui couvre quasi tout et lance SPY++, tu pourras tracer tous les messages émis et reçus.

ciao...
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2005 à 15:52
Si tu lis le C regarde ici, rien de sorcier:
http://www.cppfrance.com/code.aspx?id=27889

ciao...
BruNews, MVP VC++
0
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
23 sept. 2005 à 15:53
merci BruNews, je ne suis pas un fan de SPY++ mais je matte quand meme

par contre je viens de trouver que je reçois le message COLOR_BTNFACE, ça peut aider à qlq chose?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2005 à 16:09
COLOR_BTNFACE est une constante de couleur, pas un message.

ciao...
BruNews, MVP VC++
0
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
24 sept. 2005 à 02:01
voici ci-dessous les messages trouvés avec spy++

Styles =>

Windows styles 50010009 (WS_CHILDWINDOW, WS_VISIBLE, WS_TABSTOP, WS_AUTORADIOBUTTON).

Extended Styles : 00000020 (WS_EX_LEFT, WS_EX_LTRREADING, WS_RIGHTSCROLLBAR, WS_EX_TRANSPARENT).

Class =>

Class name : Button

Class Styles : (CS_PARENTDC, CS_DBLCLKS, CS_HREDRAW, CS_VERDRAW )

Cursor Handle : IDC_ARROW

Bkgnd Brush: (None)

voila, ça peut aider en qlq chose?

merci d'avance
0
davidauche Messages postés 150 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 8 janvier 2008
24 sept. 2005 à 02:44
ce que j'ai bien compris, c'est pour dessiner le radio, elle utilise
par defaut le brush du parent alors la couleur d'arriere plan du
fenetre qui contient le nouveau control à dessiner (d'apres msdn
(WM_CTLCOLORSTATIC du parent et pas de ce control)).

ben je suis dessus depuis longtemps mais tjrs pas de solution :'(

GEDDi, m'a dit de matter SetProp et GetProp, mais bon! j'ai rien trouvé, et j'ai rien compris de lui :(

c'est à lui cette fonction :

int FBSL_FUNCTION(HANDLE Hwnd)

{

long OldWndProc = 0;

if(GetProp(hwnd, "OldProc")) {

printf("Error: only one hook per window is allowed!");

return -1; // à remplacer par des codes d'erreur

}

// Subclass the window

OldWndProc = SetWindowLong(hwnd,GWL_WNDPROC,(long)MainWndProc);

// Associate old procedure with handle and store it for further unsubclassing by Unhook()

SetProp(hwnd, "OldProc", (void*)OldWndProc);

return 0;

}



peut il a mal comprit le probleme, ou bien (probablement) c'est deja la
solution mais je ne sais pas la comprendre ni l'appliquer :'(, à vous
pour me dire si ça sert à qlq chose pour resoudre ce bug...

Merci encore
0
Rejoignez-nous