Como faço para exibir uma dica de ferramenta para um CMFCRibbonButton na barra de status?
-
05-07-2019 - |
Pergunta
Eu tenho um CMFCRibbonStatusBar
na minha mainframe para que eu adicionar um CMFCRibbonButtonsGroup
que novamente tem um CMFCRibbonButton
. Este botão tem o mesmo ID como um item de menu.
Criando o botão é feito da seguinte forma:
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(""));
Eu quero usar este botão como um indicador de status.
Eu quero exibir uma dica de ferramenta nos dois casos seguintes:
- quando as mudanças de status e
- quando o usuário move o mouse sobre o botão.
Eu não tenho nenhuma idéia de como começar em primeiro lugar. Eu olhei para os projectos ToolTipDemo
e amostras DlgToolTips
mas não conseguia descobrir como fazê-lo uma vez que todos eles fazem é exibir dicas de ferramentas para os itens da barra de ferramentas ou botões de diálogo (em vez de CWnd
derivados de CMFCRibbonButton
).
Se você está familiarizado com o projeto de exemplo ToolTipDemo
: Desde parece haver várias maneiras de fazer as coisas, eu preferiria a dica para se parecer com a ponta "baseadas em Gerente de Visual estendida" ferramenta como mostrado neste screenshot .
Obrigado!
Solução
Eu não acho que é possível mostrar a dica de ferramenta sem o mouse cursor estar sobre o controle. Isso é feito automaticamente.
No entanto, se você quiser ter um bom olhar dica como em sua imagem, você precisa SetToolTipText
chamada e SetDescription
, como este:
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);
Outras dicas
Eu estou usando controles CMFCRibbonButton
dentro de um CMFCRibbonButtonGroup
, que é adicionado ao CMFCRibbonStatusBar
. Tome nota do 4º parâmetro no construtor CMFCRibbonButton()
, bAlwaysShowDescription
, como este parece afetar o comportamento dependendo se SetDescription()
foi chamado.
Especificamente, se SetDescription()
não foi chamado, não importa se bAlwaysShowDescription
é verdadeira ou falsa - a ponta da ferramenta é exibido (como seria de esperar). Se SetDescription()
está definido e bAlwaysShowDescription
é FALSE, quando pairando sobre o botão da ponta da ferramenta é exibida com a descrição abaixo.
O que parece contraditório dado o nome deste parâmetro bAlwaysShowDescription
, é que quando isso é verdade e SetDescription()
está definido, NÃO a ponta da ferramenta nem a descrição aparecer. Pergunto-me se isto está relacionado com este post:
https://connect.microsoft .com / VisualStudio / feedback / details / 399646 / cmfcribbonbutton-vai-show-tooltip-se-balwaysshowdescription-1
Espero que isso ajude e você pode conseguir o que você precisa com as diferentes combinações de parâmetro bAlwaysShowDescription
e se SetDescription()
está definido.