Vous pouvez remplacer la fonction virtuelle CControlBar::OnBarStyleChange
pour détecter les changements dans le style de la barre de contrôle (valeurs CBRS_XXX
- consultez le fichier d'en-tête <afxres.h>
pour plus de détails).
Pour déterminer si la barre de contrôle est flottante/ancrée, vérifiez le style CBRS_FLOATING
. Pour vérifier l'orientation horizontale/verticale, utilisez les styles CBRS_ORIENT_HORZ
et CBRS_ORIENT_VERT
.
Ainsi, en utilisant CToolBar
(qui est dérivé de CControlBar
) comme exemple:
class CMyToolBar : public CToolBar {
public:
virtual void OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle);
};
void CMyToolBar::OnBarStyleChange(DWORD dwOldStyle, DWORD dwNewStyle)
{
// Call base class implementation.
CToolBar::OnBarStyleChange(dwOldStyle, dwNewStyle);
// Use exclusive-or to detect changes in style bits.
DWORD changed = dwOldStyle^dwNewStyle;
if (changed & CBRS_FLOATING) {
if (dwNewStyle & CBRS_FLOATING) {
// ToolBar now floating
}
else {
// ToolBar now docked
}
}
if (changed & CBRS_ORIENT_ANY) {
if (dwNewStyle & CBRS_ORIENT_HORZ) {
// ToolBar now horizontal
}
else if (dwNewStyle & CBRS_ORIENT_VERT) {
// ToolBar now vertical
}
}
}
J'espère que cela aide!
Cela aide beaucoup! Merci d'avoir répondu si rapidement et pour l'exemple - c'est génial :-) – fhe