MFC对话框 工具栏 真彩色
方法1建立 MFC 对话框 工程 :
名字为:TestOne
代码1:
public: CToolBar m_Toolbar; afx_msg void OnToolBarStart(); afx_msg void OnToolBarStop(); afx_msg void OnToolBarInfo();
代码2:
BEGIN_MESSAGE_MAP(CTestOneDlg, CDialogEx) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_COMMAND(IDB_START, &CTestOneDlg::OnToolBarStart) ON_COMMAND(IDB_STOP, &CTestOneDlg::OnToolBarStop) ON_COMMAND(IDB_INFO, &CTestOneDlg::OnToolBarInfo) END_MESSAGE_MAP()
代码3:
void CTestOneDlg::OnToolBarStart() { // TODO: 在此添加命令处理程序代码 MessageBox(_T("OnToolBarStart")); } void CTestOneDlg::OnToolBarStop() { // TODO: 在此添加命令处理程序代码 MessageBox(_T("OnToolBarStop")); } void CTestOneDlg::OnToolBarInfo() { // TODO: 在此添加命令处理程序代码 MessageBox(_T("OnToolBarInfo")); }
代码4:
BOOL CTestOneDlg::onInitDialog()中添加如下代码
m_Toolbar.Create(this);//创建工具栏控件 m_Toolbar.LoadToolBar(IDR_TOOLBAR1);//装载工具栏资源 //该函数用于显示工具栏,并根据窗口大小自动调整工具栏的位置 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);方法2:
建立MFC 对话框工程 :TestTwo
IDB_START
IDB_STOP
IDB_INFO
https://www.iconfont.cn/
https://www.iconfont.cn/search/index?spm=a313x.7781069.1998910419.148&searchType=icon&q=stop
保存
代码1
public: CToolBar m_Toolbar; afx_msg void OnToolBarStart();
代码2:
BEGIN_MESSAGE_MAP(CTestTwoDlg, CDialogEx) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_COMMAND(IDB_START, &CTestTwoDlg::OnToolBarStart) END_MESSAGE_MAP() void CTestTwoDlg::OnToolBarStart() { // TODO: 在此添加命令处理程序代码 MessageBox(_T("OnToolBarStart")); }
代码3:
//创建Toolbar m_Toolbar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP); //加载Toolbar //16位的工具栏按钮个数决定24位的工具栏按钮个数 //因为那些bmp位图是显示在工具栏按钮上的 m_Toolbar.LoadToolBar(IDR_TOOLBAR1); CImageList image; CBitmap bmp; //加载24位BMP工具栏 bmp.LoadBitmap(IDB_HOT); //创建图像列表 //ILC_MASK表示背景透明 //3个工具按钮,每次增加一个 image.Create(32, 32, ILC_MASK | ILC_COLOR24, 3, 1); //把bmp加入到图像列表 image.Add(&bmp, RGB(255, 255, 255));//背景颜色为白色 m_Toolbar.GetToolBarCtrl().SetImageList(&image); image.Detach();//用完之后解绑 bmp.Detach(); //用完之后解绑 //如果显示不完全,就调整一下大小 CRect rect; //获取第一个工具按钮的大小 m_Toolbar.GetItemRect(0, &rect); //第一个参数是按钮大小,第二个是图片大小 m_Toolbar.SetSizes(rect.Size(), CSize(32, 32)); //调整工具栏的位置 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);方法3
代码1
public: CToolBar m_Toolbar; afx_msg void OnToolBarStart();
代码2:
BEGIN_MESSAGE_MAP(CTestThreeDlg, CDialogEx) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_COMMAND(IDB_START, &CTestThreeDlg::OnToolBarStart) END_MESSAGE_MAP() void CTestThreeDlg::OnToolBarStart() { // TODO: 在此添加命令处理程序代码 MessageBox(_T("OnToolBarStart")); }
代码3:
//创建Toolbar m_Toolbar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP); //加载Toolbar //16位的工具栏按钮个数决定24位的工具栏按钮个数 //因为那些bmp位图是显示在工具栏按钮上的 m_Toolbar.LoadToolBar(IDR_TOOLBAR1); CImageList image; CBitmap bmp; //加载24位BMP工具栏 bmp.LoadBitmap(IDB_COLD); //创建图像列表 //ILC_MASK表示背景透明 //3个工具按钮,每次增加一个 image.Create(32, 32, ILC_MASK | ILC_COLOR24, 3, 1); //把bmp加入到图像列表 image.Add(&bmp, RGB(255, 255, 255));//背景颜色为白色 m_Toolbar.GetToolBarCtrl().SetImageList(&image); image.Detach();//用完之后解绑 bmp.Detach(); //用完之后解绑 //加载24位BMP工具栏 bmp.LoadBitmap(IDB_HOT); //创建图像列表 //ILC_MASK表示背景透明 //3个工具按钮,每次增加一个 image.Create(32, 32, ILC_MASK | ILC_COLOR24, 3, 1); //把bmp加入到图像列表 image.Add(&bmp, RGB(255, 255, 255));//背景颜色为白色 m_Toolbar.GetToolBarCtrl().SetHotImageList(&image); image.Detach();//用完之后解绑 bmp.Detach(); //用完之后解绑 //如果显示不完全,就调整一下大小 CRect rect; //获取第一个工具按钮的大小 m_Toolbar.GetItemRect(0, &rect); //第一个参数是按钮大小,第二个是图片大小 m_Toolbar.SetSizes(rect.Size(), CSize(32, 32)); //调整工具栏的位置 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);方法4
http://www.codeproject.com/docking/TrueColorToolBar.asp
//In Mainframe.h #define TOOLBAR_DRAW_BUTTON_WIDTH 24 #include "TrueColorToolBar.h" class CMainframe : public CframeWnd { CTrueColorToolBar m_ToolBarDrawLeft; } //In Mainframe.cpp int CMainframe::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CframeWnd::OnCreate(lpCreateStruct) == -1) return -1; m_ToolBarDrawLeft.SetBorders(1, 1, 1, 1); //Fix for WinXP if (!m_ToolBarDrawLeft.Create(this, WS_CHILD | WS_VISIBLE | CBRS_LEFT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_ToolBarDrawLeft.LoadToolBar(IDR_TOOLBAR_DRAW)) { TRACE0("Failed to create toolbarn"); return -1; //Failed to create } m_ToolBarDrawLeft.ModifyStyle(0, TBSTYLE_FLAT);//Fix for WinXP m_ToolBarDrawLeft.LoadTrueColorToolBar( TOOLBAR_DRAW_BUTTON_WIDTH, IDB_TOOLBAR_DRAW, IDB_TOOLBAR_DRAW_HOT, IDB_TOOLBAR_DRAW_DISABLED); return 0; }
建立工程4:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)