1. 程式人生 > >VC對話框添加工具欄

VC對話框添加工具欄

vc 工具欄 mfc

在VC對話框中添加工具欄,要分為如下幾步操作。

1、在資源視圖中添加toolbar類資源,在工具欄上添加按鈕,並命名ID:ID_BTN1,ID_BTN2

2、對話框頭文件中,添加變量CToolBar m_ToolBar;

3、在對話框的OnInitDialogh函數中添加如下代碼:

// TODO: 在此添加額外的初始化代碼  
    if( !m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | 
        CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS ) ||    
        !m_ToolBar.LoadToolBar(IDR_TOOLBAR1))    
    {    
        TRACE0("未能創建工具欄\n");    
        AfxMessageBox(_T("未能創建工具欄\n"));    
        return FALSE;      // 未能創建    
    }    
    m_ToolBar.ShowWindow(SW_SHOW);    
    //控件條定位    
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

4、添加提示消息汽泡
添加反射消息:ON_NOTIFY_EX_RANGE(TTN_NEEDTEXT, 0, 0xffff, OnToolTipText)

頭文件中添加消息函數聲明:

afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);//汽泡提示

在CPP文件中添加函數如下:

BOOL CTestDLLDlg::OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult)  
{  
    TOOLTIPTEXT   *pTTT=(TOOLTIPTEXT*)pNMHDR;      
    UINT  uID=pNMHDR->idFrom;     // 相當於原WM_COMMAND傳遞方式的LOWORD(wParam),
                                  //在wParam中放的則是控件的ID。    
  
    if(pTTT->uFlags  &  TTF_ABSOLUTE)      
        uID=::GetDlgCtrlID((HWND)uID);       
    if(uID==NULL)       
        return   FALSE;      
    switch(uID)    
    {      
    case ID_BTN1:    
        pTTT->lpszText= _T("OK");      
        break;    
  
    case ID_BTN2:    
        pTTT->lpszText= _T("hello");      
        break;    
    }    
    return TRUE;    
}


VC對話框添加工具欄