Question

J'ai un CMFCRibbonStatusBar dans mon mainframe auquel j'ajoute un CMFCRibbonButtonsGroup qui a encore un CMFCRibbonButton . Ce bouton a le même identifiant qu'une entrée de menu.

La création du bouton se fait comme suit:

CMFCRibbonButtonsGroup* pBGroup = new CMFCRibbonButtonsGroup();

CMFCToolBarImages images;
images.SetImageSize(CSize(32, 16)); // Non-square bitmaps
if(images.Load(IDB_STATUSBAR_IMAGES))
{
    pBGroup->SetImages(&images, NULL, NULL);
}

m_pStatusButton = new CMFCRibbonButton(ID_STATUS_SHOWSTATUS,
                                       _T(""),
                                       IMAGEINDEX_DEFAULTSTATUS);

pBGroup->AddButton(m_pStatusButton);

m_wndStatusBar.AddExtendedElement(pBGroup, _T(""));

Je souhaite utiliser ce bouton comme indicateur d'état.

Je souhaite afficher une info-bulle dans les deux cas suivants:

  • quand le statut change et
  • lorsque l'utilisateur déplace la souris sur le bouton.

Je ne sais pas comment commencer en premier. J'ai consulté les exemples de projets ToolTipDemo et DlgToolTips , mais je ne savais pas comment le faire, car ils se contentaient d'afficher des info-bulles pour les éléments de la barre d'outils ou les boutons de la boîte de dialogue (< code> CWnd - dérivé au lieu de CMFCRibbonButton ).

Si vous connaissez le projet exemple ToolTipDemo : Étant donné qu'il semble exister plusieurs façons de procéder, je préférerais que l'info-bulle ressemble à l'option " Basé sur le gestionnaire étendu Visual Manager & info-bulle comme affiché dans cette capture d'écran .

Merci!

Était-ce utile?

La solution

Je ne pense pas qu'il soit possible d'afficher l'info-bulle sans que le curseur de la souris se trouve sur le contrôle. Tout cela se fait automatiquement.

Toutefois, si vous souhaitez avoir une jolie info-bulle comme sur votre capture d'écran, vous devez appeler SetToolTipText et SetDescription , comme suit:

CMFCRibbonButton* pBtn = new CMFCRibbonButton(12345, _T(""), 1);
pBtn->SetToolTipText("This is the bold Title");
pBtn->SetDescription("This is the not-so-bold Description");
pGroup->AddButton(pBtn);

Autres conseils

J'utilise des contrôles CMFCRibbonButton dans un CMFCRibbonButtonGroup , qui est ajouté au CMFCRibbonStatusBar . Prenez note du 4ème paramètre du constructeur CMFCRibbonButton () , bAlwaysShowDescription , car cela semble affecter le comportement selon que SetDescription () a été appelé.

Plus précisément, si SetDescription () n'a pas été appelé, le fait que bAlwaysShowDescription ait la valeur TRUE ou FALSE - l'info-bulle est affichée (comme je le pensais ). Si SetDescription () est défini et que bAlwaysShowDescription est défini sur FALSE, lors du survol du bouton, l'info-bulle est affichée avec la description située en dessous.

Ce qui semble contre-intuitif étant donné le nom de ce paramètre bAlwaysShowDescription , c’est que lorsque ce paramètre est VRAI et que SetDescription () est défini, NI Les info-bulles ni la description n'apparaissent. Je me demande si cela est lié à ce post: https://connect.microsoft .com / VisualStudio / feedback / détails / 399646 / cmfcribbonbutton-wont-show-tooltip-if-balwaysshowdescription-1

J'espère que cela vous aide et que vous pouvez obtenir ce dont vous avez besoin avec les différentes combinaisons de paramètre bAlwaysShowDescription et si SetDescription () est défini.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top