1

j'essaye de faire ça

http://www.codeproject.com/KB/wtl/wtl4mfc5.aspx

Quand les boutons sont crées à partir du "designer" càd en mappant avec les boutons qu'on trouve dans un DIALOG qu'on a dans les ressources, ça appelle bien DrawItem.
Mais quand je veux instancier ma class bouton personnalisé dans OnCreate de la fenetre, il ne passe pas dans DrawItem de ce button:


LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
	{
				
		CODButtonImpl* ze = new CODButtonImpl();
		ze->Create( m_hWnd, CRect(10,10,100,50),_T("jkshf"),WS_CHILD|WS_VISIBLE);
}



comment je fais pour provoquer l'appel de la fonction qui le fait dessiner????
Tout ce qui passe pas par le port 80, c'est de la triche.

2

J'y connais rien en WTL spécifiquement, mais ça serait pas tout simplement parce que tu n'as pas appliqué le style BS_OWNERDRAW à ton bouton ?
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

3

4

Sachant que WTL ne tourne nulle part ailleurs, la réponse à ta question est évidente. sad
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

Ok, Merci GC.
j'ai mis BS_OWNERDRAW, mais ça donnait une erreur d'assertion failed lors du dessin de la fenetre.
J'ai reglé ce problème en mettant l'appel au macro REFLECT_NOTIFICATIONS() dans les macros de message handling, je ne sais absolument pas à quoi ça sert, mais ils ont fait comme ça dans http://www.codeproject.com/KB/wtl/mousetrack.aspx

Maintenant, une autre question. Je connais la taille de ma fenetre car je fais this->SetWindowPos(NULL,m_x,m_y,m_w,m_h,SWP_HIDEWINDOW);
mais m_w et m_h contiennent TOUTE la largeur de la fenetre en incluant la taille des bordures. Cette taille doit être variable d'un OS à un autre je suppose.

Comment on fait pour connaitre la taille de l'espace "dessinable" dans une fenêtre? Pour l'instant lors du dessin, je suppose que la taille est de m_w-10 environ mais c'est moche comme solution...

EDIT: Trouvé: GetClientRect
Tout ce qui passe pas par le port 80, c'est de la triche.