Come posso visualizzare una descrizione comandi per un CMFCRibbonButton nella barra di stato?
-
05-07-2019 - |
Domanda
Ho un CMFCRibbonStatusBar
nel mio mainframe al quale aggiungo un CMFCRibbonButtonsGroup
che ha di nuovo un CMFCRibbonButton
. Questo pulsante ha lo stesso ID di una voce di menu.
La creazione del pulsante viene eseguita come segue:
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(""));
Voglio usare questo pulsante come indicatore di stato.
Voglio visualizzare un suggerimento nei due casi seguenti:
- quando lo stato cambia e
- quando l'utente sposta il mouse sul pulsante.
Non ho idea di come iniziare in primo luogo. Ho esaminato i progetti di esempio ToolTipDemo
e DlgToolTips
ma non sono riuscito a capire come farlo poiché tutto ciò che fanno è visualizzare i suggerimenti per gli elementi della barra degli strumenti o i pulsanti delle finestre di dialogo (< code> CWnd - generato anziché CMFCRibbonButton
).
Se hai familiarità con il progetto di esempio ToolTipDemo
: dato che sembrano esserci diversi modi di fare le cose, preferirei che la descrizione comandi assomigliasse al "quotazione estesa basata su Visual Manager" suggerimento come mostrato in questa schermata .
Grazie!
Soluzione
Non credo sia possibile mostrare la descrizione comando senza che il cursore del mouse si trovi sul controllo. Tutto è fatto automaticamente.
Tuttavia, se vuoi avere una descrizione comandi gradevole come nel tuo screenshot, devi chiamare SetToolTipText
e SetDescription
, in questo modo:
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);
Altri suggerimenti
Sto usando i controlli CMFCRibbonButton
all'interno di un CMFCRibbonButtonGroup
, che viene aggiunto al CMFCRibbonStatusBar
. Prendi nota del quarto parametro nel costruttore CMFCRibbonButton ()
, bAlwaysShowDescription
, poiché questo sembra influenzare il comportamento a seconda che SetDescription ()
abbia stato chiamato.
In particolare, se SetDescription ()
non è stato chiamato, non importa se bAlwaysShowDescription
sia VERO o FALSO - viene visualizzato il suggerimento (come mi aspetterei ). Se SetDescription ()
è impostato e bAlwaysShowDescription
è FALSE, quando si passa con il mouse sopra il pulsante viene visualizzato il suggerimento con la descrizione sotto di esso.
Ciò che sembra controintuitivo dato il nome di questo parametro bAlwaysShowDescription
, è che quando questo è TRUE e SetDescription ()
è impostato, NESSUNO il non viene visualizzata la descrizione né la descrizione. Mi chiedo se questo è legato a questo post:
https://connect.microsoft .com / VisualStudio / feedback / dettagli / 399.646 / cmfcribbonbutton-wont-show-tooltip-se-balwaysshowdescription-1
Spero che questo ti aiuti e puoi ottenere ciò di cui hai bisogno con le diverse combinazioni del parametro bAlwaysShowDescription
e se è impostato SetDescription ()
.