【问题标题】:How to Determine Resource-ID of the CMFCRibbonButton using NMHDR Structure?如何使用 NMHDR 结构确定 CMFCRibbonButton 的资源 ID?
【发布时间】:2011-03-16 18:10:06
【问题描述】:

我实现了自己的 CMFCToolTipCtrl 类以修改功能区控件中的增强工具提示。但我无法从 NMHDR 结构中确定资源 ID。如何获取它?

////////////////////////// 主应用程序.cpp //////////////////////////

CMFCToolTipInfo ttParams;

ttParams.m_bVislManagerTheme =FALSE;

theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS(MTP_CMFCToolTipCtrl), &ttParams);

////////////////////////// MTP_CMFCToolTipCtrl.cpp //////////////////////////

BEGIN_MESSAGE_MAP(MTP_CMFCToolTipCtrl, CMFCToolTipCtrl) ON_NOTIFY_REFLECT(TTN_SHOW, OnShow) ON_WM_SETFOCUS() END_MESSAGE_MAP()

void MTP_CMFCToolTipCtrl::OnShow(NMHDR* pNMHDR, LRESULT* pResult)

{

int m_nCurrID=?

// 如何使用 NMHDR 结构确定 CMFCRibbonButton 的 Resource-ID ??

开关 (m_nCurrID) {

case ID_EDIT_PASTE:
    SetDescription (_T("paste button description..."));
    break;

case ID_EDIT_CUT:
    SetDescription (_T("cut button description..."));
    break;

default:
    SetDescription (_T (""));

}

CMFCToolTipCtrl::OnShow (pNMHDR, pResult);

}

【问题讨论】:

  • 你的Control的ID不是TTN_SHOW?
  • @Sunscreen 无法得到你请简单解释一下。
  • 我用 NMHDR 结构尝试了许多不同的投射,但似乎没有任何效果..帮帮我..

标签: visual-c++ mfc


【解决方案1】:

问题解决了..通过实施

CMFCToolBarImages* CMainFrame::GetTooltipImage(UINT uiID) {} // 在 Main.cpp 中

CSize MTP_CMFCToolTipCtrl::GetIconSize()

{

CMFCToolBarImages* pBmp = ((CMainFrame*)GetTopLevelFrame())->GetTooltipImage(m_nID);

.......

.......

}

...如需更多帮助,请参考 MFC Feature Pack 2008 的 MSOffice2007Demo 示例...谢谢... :|

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    相关资源
    最近更新 更多