2008-12-22 11 views
1

Je crée une application MFC dans lequel il y a une bibliothèque de la peau qui gère l'effet de l'interface utilisateur de rendre les contrôles (il est appelé à OnInitDialog). Mais, en attendant, j'ai aussi l'obligation d'afficher une icône sur les boutons. Pour cela, je marquais les boutons comme ownerdrawn = true, et capable d'afficher l'icône, mais dans ce cas, l'effet de la peau ne se déroule pas sur les boutons dont ownerdrawing est fait par moi. Donc, ma question est, comment puis-je m'assurer qu'un contrôle est possédé par moi, et aussi par n'importe quelle autre bibliothèque.contrôle OwnerDrawn dans MFC

Répondre

1

Appelez le gestionnaire par défaut pour OnPaint pour vous assurer que la bibliothèque de skinning a une chance de tirer le bouton, puis dessinez votre propre contenu sur le dessus.

void OnPaint() 
{ 
    Default(); 
    CClientDC dc(this); 
    // your painting code goes here 
} 
1

Vous n'avez pas besoin de dessiner par le propriétaire pour afficher les icônes dans les boutons!

+0

CMFCButton peut également com à la rescousse! – sergiol