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!

È stato utile?

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 () .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top