zoukankan      html  css  js  c++  java
  • vs2008 对话框上的工具栏添加提示信息

    对话框上的工具条上的提示信息不能采用mfc应用程序直接在资源中添加的方式添加,因为对话框不由CFrameWnd管理。

    1. 在对话框类头文件.h中添加

    BOOL OnToolTipNotify( UINT id,NMHDR* pNMHDR,LRESULT* pResult);

    2. 在对话框.cpp文件中添加

    (1)消息映射中添加:

    BEGIN_MESSAGE_MAP(CAssessMainDialog, CBCGPDialog)

    //控件响应,范围为0到无穷大

    ON_NOTIFY_EX( TTN_NEEDTEXT,0,OnToolTipNotify)

    //控件响应,范围为0到OxFFFF
     //ON_NOTIFY_EX_RANGE( TIN_NEEDTEXT,0,OxFFFF,OnToolTipNotify)
    END_MESSAGE_MAP()

    (2)添加响应函数:

    BOOL CAssessMainDialog::OnToolTipNotify( UINT id,NMHDR* pNMHDR,LRESULT* pResult )

     BOOL bResult = TRUE;
     TOOLTIPTEXT *pTTT = (TOOLTIPTEXT*)pNMHDR;
     UINT_PTR uID = pNMHDR->idFrom;
     if ( pTTT->uFlags && TTF_IDISHWND)
     {  

      //int nID = ::GetDlgCtrlID(HWND(uID);)网上例子说uID为控件在窗口中的句柄,测试结果其实就是控件的ID,因此这句不需要,

     //也可能是编译器的原因。。。。。。
      CString strToolTips(_TEXT(""));
      switch ( uID )
      {
      case ID_EXECUTE:
       strToolTips.Format(_TEXT("%s"),_TEXT("执行评估流程"));
       break;
      case ID_SAVEFILE:
       strToolTips.Format(_TEXT("%s"),_TEXT("保存评估流程"));
       break;
      case ID_OPENFILE:
       strToolTips.Format(_TEXT("%s"),_TEXT("打开评估流程"));
       break;
      default:
       bResult = FALSE;
      }
      if ( TRUE == bResult)
      {
       *pResult = 0;
       _tcscpy( pTTT->lpszText,strToolTips);
       pTTT->hinst = NULL;

      }
      return bResult;
     }

    }

    (3)启用工具提示

    在初始化函数中添加,不一定在OnInitDialog函数中。

    BOOL CAssessMainDialog::OnInitDialog()
    {
     CBCGPDialog::OnInitDialog();
     CBCGPDialog::EnableVisualManagerStyle();
     m_ToolBar->EnableToolTips(TRUE);

    //网上的例子是直接启用对话框工具提示,测试结果只能对整个工具栏显示提示信息,改为启用工具栏提示信息,ok了

    //EnableToolTips(TRUE); 

    return TRUE; 
    }

    参见“百度文库”http://wenku.baidu.com/view/bf6a9105cc17552707220890.html

  • 相关阅读:
    67. Add Binary
    66. Plus One
    64. Minimum Path Sum
    63. Unique Paths II
    How to skip all the wizard pages and go directly to the installation process?
    Inno Setup打包之先卸载再安装
    How to change the header background color of a QTableView
    Openstack object list 一次最多有一万个 object
    Openstack 的 Log 在 /var/log/syslog 里 【Ubuntu】
    Git 分支
  • 原文地址:https://www.cnblogs.com/huipengkankan/p/2176020.html
Copyright © 2011-2022 走看看