CToolBar 实现工具栏及提示功能 ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTip)

BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
 //{{AFX_MSG_MAP(CTestDlg)
 ON_WM_SYSCOMMAND()
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 //}}AFX_MSG_MAP
 ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTip)
END_MESSAGE_MAP()

/
// CTestDlg message handlers

BOOL CTestDlg::OnToolTip(UINT id, NMHDR *pNMHDR, LRESULT * pResult )
{
 TOOLTIPTEXT *pTipText = (TOOLTIPTEXT*)pNMHDR;
 UINT nID = pNMHDR->idFrom;

 int nIndex = m_toolBar.GetToolBarCtrl().CommandToIndex(nID);
 CString strMsg;
 m_toolBar.GetButtonText(nIndex, strMsg);
 strcpy(pTipText->lpszText, strMsg.GetBuffer(strMsg.GetLength()));
 pTipText->hinst = AfxGetResourceHandle();
 return TRUE;

}

BOOL CTestDlg::OnInitDialog()
{
 CDialog::OnInitDialog();

 // Add "About..." menu item to system menu.

 // IDM_ABOUTBOX must be in the system command range.
 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);

 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if (!strAboutMenu.IsEmpty())
  {
   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }
 }

 // Set the icon for this dialog.  The framework does this automatically
 //  when the application's main window is not a dialog
 SetIcon(m_hIcon, TRUE);   // Set big icon
 SetIcon(m_hIcon, FALSE);  // Set small icon
 
 m_imgList.Create(32, 32, ILC_COLOR24 | ILC_MASK, 1, 1);
 m_imgList.Add(AfxGetApp()->LoadIcon(ICON_LOGIN));
 m_imgList.Add(AfxGetApp()->LoadIcon(ICON_ASK));
 m_imgList.Add(AfxGetApp()->LoadIcon(ICON_QUEST));

 UINT Array[3] = {9000, 9001, 9002};

 m_toolBar.Create(this);
 m_toolBar.SetButtons(Array, 3);
 m_toolBar.SetButtonText(0, _T("登陆"));
 m_toolBar.SetButtonText(1, _T("提问"));
 m_toolBar.SetButtonText(2, _T("探索"));
 m_toolBar.GetToolBarCtrl().SetImageList(&m_imgList);
 m_toolBar.SetSizes(CSize(50, 50), CSize(32, 32));
 m_toolBar.EnableToolTips(TRUE);
 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);


 

 return TRUE;  // return TRUE  unless you set the focus to a control
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值