2010-08-11 2 views
0

Je suis en train d'écrire une application de boîte de dialogue en MFC. Le dialogue a 3 contrôles enfants. 2 boutons (bouton 1 & Bouton 2) et un contrôle HTML (classe dérivée de CHtmlView) Le contrôle HTML a été dirigé vers une page HTML ayant 2 cases à cocher (Case à cocher 1 & Case à cocher 2).Classe et focus CHtmlView

contrôle de l'ordre de mise au point devrait être comme: Bouton 1 Bouton 2 contrôle HTML puis de nouveau bouton 1

Lorsque le focus va au contrôle HTML. Je souhaite que la case à cocher 1 & soit cochée puis, après avoir appuyé sur la touche Tab, elle soit cochée. Mais lorsque j'appuie sur la languette alors que la case 2 est cochée, je veux la régler sur le bouton 1.

-à-dire Je veux le cycle de mise au point comme: Bouton 1 -> Bouton 2 -> case à cocher 1 en HTML de configuration -> Check Box 2 en HTML de configuration -> puis à nouveau le bouton 1

problème: Lorsque la mise au point est réglé sur Contrôle HTML, il n'est pas défini sur la case à cocher 1 et après avoir appuyé sur la touche lorsque le focus est activé Case à cocher 2 ne revient pas au bouton 1.

Faites-moi savoir si la question n'est pas assez descriptive, je vais la simplifier davantage. Appréciez votre temps.

Répondre

0

Je ne peux pas le tester mais vous pouvez essayer d'ajouter le style WS_EX_CONTROLPARENT au contrôle HTML.

int OnInitDialog(...) 
{ 
    HWND html = GetDlgItem(dialog, ID_HTML); 
    DWORD ex_style = GetWindowLong(html, GWL_EXSTYLE); 
    SetWindowLong(html, GWL_EXSTYLE, ex_tyle | WS_EX_CONTROLPARENT); 
    return 0; 
} 

J'espère que cela fonctionne.

+0

Merci pour votre réponse. Mais le problème persiste toujours. Comment puis-je définir le focus sur la case à cocher 1 du contrôle HTML après avoir appuyé sur l'onglet sur le bouton 2 de la boîte de dialogue parent. Comment puis-je rétablir le focus sur le bouton 1? Je veux que le focus fasse un cycle en tant que Bouton 1 -> Bouton 2 -> Case à cocher 1 -> Case à cocher 2 -> Bouton à nouveau 1. Merci, Vaibhav. –

+0

Est-ce que le contrôle HTML a le style WS_TABSTOP? – Tassos

+0

J'ai une boîte de dialogue avec un contrôle html qui se comporte comme prévu (au moins pour les liens). La ligne dans le fichier de ressources est: CONTROL "", IDC_EXPLORER, "{8856F961-340A-11D0-A96B-00C04FD705A2}", WS_TABSTOP, 7,210,333,39 – Tassos