2009-03-09 6 views
1

J'ai un CTabCtrl personnalisé que j'essaie de personnaliser (pour changer automatiquement les pages).Comment gérer les messages de notification dans les classes enfant et parent?

Si je gère ON_NOTIFY_REFLECT(TCN_SELCHANGE, ...) dans mon contrôle onglet, ON_NOTIFY(TCN_SELCHANGE, ...) n'est pas reçu par la classe parente.

Comment puis-je recevoir les deux messages de notification dans les classes enfant et parent?

Actuellement, je suis en utilisant une "solution" d'envoyer manuellement le message WM_NOTIFY à la classe parente:

void CMyTabControl::OnSelChange(NMHDR *pHeader, LRESULT *pResult) 
{ 
    const int index = this->GetCurSel(); 
    this->ShowTab(index); 

    const CWnd *const pParent = this->GetParent(); 
    if (pParent != NULL) 
    { 
     *pResult = pParent->SendMessage(WM_NOTIFY, TCN_SELCHANGE, 
      reinterpret_cast<LPARAM>(pHeader)); 
    } 
} 

Edit: J'ai essayé à la fois * pResult = 0 et * pResult = 1 mais n'envoie toujours pas le message sur le parent. En outre, j'ai remarqué que lorsque j'envoie le message au parent, je me retrouve dans une boucle presque infinie (pour une raison quelconque, il sort après plusieurs itérations).

Répondre

Questions connexes