VS2010 下VC++ MFC对话框应用程序怎么创建工具栏

2024-12-25 13:48:31
推荐回答(1个)
回答1:

1,solution explorer 右键添加resource (Add -> Resource),然后选择toolbar并新建

2,然后自己画BUTTON吧

3,记得给每个button一个ID啊。。。

4,对了toolbar的ID是IDR_TOOLBAR1,对话框的.h文件中添加

CToolBar m_FirstToolBar;

5,.cpp文件中,函数OnInitDialog()中添加

if(!m_FirstToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | 
WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | 
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || 
!m_FirstToolBar.LoadToolBar(IDR_TOOLBAR1))
{
   EndDialog(IDCANCEL);
}
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, \
    AFX_IDW_CONTROLBAR_LAST,0);
m_FirstToolBar.MoveWindow(10, 10,100, 25, 1 );

6,如果要每个button有处理动作,那么就响应消息吧,

BEGIN_MESSAGE_MAP(CmfcdialogDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_EN_CHANGE(IDC_EDIT1, &CmfcdialogDlg::OnEnChangeEdit1)
ON_BN_CLICKED(IDC_BUTTON1, &CmfcdialogDlg::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2, &CmfcdialogDlg::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3, &CmfcdialogDlg::OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON4, &CmfcdialogDlg::OnBnClickedButton4)
END_MESSAGE_MAP()

7,再看消息处理函数

void CmfcdialogDlg::OnBnClickedButton2()
{
m_edit1.SetWindowTextW(_T("2 on toolbar"));
// TODO: Add your control notification handler code here
}

8,嗯,基本就这样,附件贴了项目文件(VS2010)