精华内容
下载资源
问答
  • 实现了在工具栏按钮上显示加入的ICON图标,并实现了鼠标悬浮在工具栏按钮上时显示提示信息。
  • 在使用VC开发对话框程序时不像开发单文档程序和多文档程序那么方便,很多资源都...一、首先建立一个对话框程序 1、添加工具栏资源,并在工具栏资源里添加几个按钮,并将按钮的width 和 height 改为24,也可以根据自...

    在使用VC开发对话框程序时不像开发单文档程序和多文档程序那么方便,很多资源都需要自己手动添加。最近在开发一个程序时,想尝试在对话框程序里面添加 工具栏 及其按钮tooltip,于是便有了这篇文章,希望把经验总结下来以方便自己以后查询以及各位同仁查询!


    一、首先建立一个对话框程序

          1、添加工具栏资源,并在工具栏资源里添加几个按钮,并将按钮的width 和 height 改为24,也可以根据自己的需要更改尺寸,同时,还要为相应的按钮设置一个ID。具体操作如图:


    二、创建工具栏

          1、在***Dlg.h添加工具栏对象, 以及位图资源

    [cpp]  view plain  copy
    1. private:  
    2.     CToolBar m_ToolBar;  
    3. // 位图资源  
    4.     CBitmap m_bitmap1;  
    5.     CBitmap m_bitmap2;  
    6.     CBitmap m_bitmap3;  
    7.     CImageList m_ImageList;  
          

            2、在OnInitDialog()函数里面添加以下代码,创建工具栏

    [cpp]  view plain  copy
    1. if( !m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS ) ||  
    2.         !m_ToolBar.LoadToolBar(IDR_TOOLBAR1))  
    3.     {  
    4.         TRACE0("未能创建工具栏\n");  
    5.         AfxMessageBox(_T("未能创建工具栏\n"));  
    6.         return FALSE;      // 未能创建  
    7.     }  
    8.     m_ToolBar.ShowWindow(SW_SHOW);  
    9.     //控件条定位  
    10.     RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);  

             3、载入几个24*24尺寸的位图,注意,该尺寸是根据上面按钮的尺寸而设定的。


              4、在以上 第2   步后面的代码添加载入位图的代码,最终如图

    [cpp]  view plain  copy
    1. if( !m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS ) ||  
    2.     !m_ToolBar.LoadToolBar(IDR_TOOLBAR1))  
    3. {  
    4.     TRACE0("未能创建工具栏\n");  
    5.     AfxMessageBox(_T("未能创建工具栏\n"));  
    6.     return FALSE;      // 未能创建  
    7. }  
    8. m_ToolBar.ShowWindow(SW_SHOW);  
    9. //控件条定位  
    10. RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);  
    11.       
    12. m_bitmap1.LoadBitmapW(IDB_BITMAP_MULTIMETER);  
    13. m_bitmap2.LoadBitmapW(IDB_BITMAP_PHONE);  
    14. m_bitmap3.LoadBitmapW(IDB_BITMAP_SPEAKER);  
    15. m_ImageList.Create(24,24, ILC_COLOR32 | ILC_MASK,0,0);  
    16. m_ImageList.Add(&m_bitmap1, RGB(0, 0, 0));  
    17. m_ImageList.Add(&m_bitmap2,RGB(0, 0, 0));  
    18. m_ImageList.Add(&m_bitmap3,RGB(255, 255, 255));  
    19. m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);  

    至此,便已并运行程序,可以看到程序界面就有我们添加上句的工具栏按钮图标,如图:


    以上已经实现了为工具栏按钮添加图标的功能,那如何为工具栏按钮添加tooltip功能能,如下图的效果:

    接着就由本人继续介绍操作步骤:


          1、在***Dlg.h 头文件添加 消息处理函数声明:

    [cpp]  view plain  copy
    1. afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);  // 工具条提示  

           2、在***Dlg.cpp添加消息映射

    [cpp]  view plain  copy
    1. BEGIN_MESSAGE_MAP(CSageRemoteKeyTestDlg, CDialogEx)  
    2.         ......  
    3.     ON_NOTIFY_EX_RANGE(TTN_NEEDTEXT, 0, 0xffff, OnToolTipText)  
    4. END_MESSAGE_MAP()  

           3、添加函数定义

    [cpp]  view plain  copy
    1. BOOL ***Dlg::OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult)  
    2. {  
    3.        
    4.     TOOLTIPTEXT   *pTTT=(TOOLTIPTEXT*)pNMHDR;    
    5.     UINT  uID=pNMHDR->idFrom;     // 相当于原WM_COMMAND传递方式的wParam(low-order), 在wParam中放的则是控件的ID。  
    6.   
    7.     if(pTTT->uFlags  &  TTF_IDISHWND)    
    8.         uID=::GetDlgCtrlID((HWND)uID);     
    9.     if(uID==NULL)     
    10.         return   FALSE;    
    11.     switch(uID)  
    12.     {    
    13.         case IDOK:  
    14.             pTTT->lpszText= _T("按下此键开始测试");    
    15.             break;  
    16.   
    17.         case IDM_POWER_MULTIMETER:  
    18.             pTTT->lpszText= _T("电表配置");    
    19.             break;  
    20.               
    21.         case IDM_SHIELDINGBOX_COM:  
    22.             pTTT->lpszText= _T("串口配置");    
    23.             break;  
    24.   
    25.         case IDM_BEEP:  
    26.             pTTT->lpszText= _T("蜂鸣器配置");    
    27.             break;  
    28.     }  
    29.    
    30.     return TRUE;  
    31. }  

    至此,编译运行程序就能实现上图的tooltip功能了!
    展开全文
  • 一些实用的工具栏按钮图标

    热门讨论 2009-07-11 10:18:09
    小弟打包了一些实用的工具栏按钮图标,种类和个数都不少,个人觉得还不错,所以发上来共享一下,希望对需要之人有帮助....
  • 本人小白在学习MFC编程工具栏的设计过程中遇到了些麻烦,希望大神们指点指点。 正常显示的工具栏图标如下: ![图片说明](https://img-ask.csdn.net/upload/201511/11/1447222226_334268.png) 然而我将正常工具栏的...
  • 日落MFC-工具栏CToolBar自定义图标

    千次阅读 2019-07-25 18:54:43
    接触过MFC的小伙伴都知道,MFC单文档、多文档应用程序中会经常用到工具栏仅包含有限个基础命令按钮,如新建、打开、保存等,而且图标的都是预设好的,如下图所示。 如果需要新加按钮,首先在工程资源视图下双击...

           效果图镇楼

           接触过MFC的小伙伴都知道,MFC单文档、多文档应用程序中会经常用到工具栏仅包含有限个基础命令按钮,如新建、打开、保存等,而且图标的都是预设好的,如下图所示。

    如果需要新加按钮,首先在工程资源视图下双击Toolbar下的IDR_MAINFRAME打开ToolBar Editor,然后在预留的最后一个空白图标上设计图案即可。

    设计完成后会自动新增一个空白按钮。

    也就是说工具栏资源的最右边总是会有一个待编辑的按钮,我们对其进行编辑后,工具栏资源会自动增加一个新的空白按钮,这也实现了按钮的添加操作。如果我们想要删除某个按钮,就可以用鼠标左键点住它,拖出工具栏资源的范围即可。还有如果想要在两个按钮之间添加分隔线的话,可以用鼠标左键拖住右边的按钮往右稍移动一些就可以了。

    这里面有一个很蛋疼的问题,自带的ToolBar Editor设计功能太二了,正常人都不会在里面设计图案,下面讲一种替换图标的方法。

    1、准备好你要替换的新图标文件,比如icon图标,import到资源下的icon目录。

    2、在MainFrm中新增一个imglist,将你import的icon加到imglist中去,然后调用CToolBarCtrl的SetImageList函数替换toolbar的图标即可。

    CImageList m_IconList;
    void OnLoadToolBarBitmap();
    void CMainFrame::OnLoadToolBarBitmap()
    {
    	m_IconList.Create(16, 16, TRUE | ILC_COLOR24, 8, 0);
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1)));
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON2)));
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON3)));
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON4)));
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON5)));
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON6)));
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON7)));
    	m_IconList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON8)));
    
    	m_wndToolBar.GetToolBarCtrl().SetImageList(&m_IconList);
    
    
    	m_wndToolBar.ModifyStyle(0, BTNS_SHOWTEXT | TBSTYLE_EX_MIXEDBUTTONS | TBSTYLE_LIST);
    	m_wndToolBar.SetButtonText(0, _T("直线"));
    	m_wndToolBar.SetButtonText(1, _T("多段线"));
    	m_wndToolBar.SetButtonText(2, _T("椭圆"));
    	m_wndToolBar.SetButtonText(3, _T("矩形"));
    	m_wndToolBar.SetButtonText(4, _T("选择"));
    	m_wndToolBar.SetButtonText(5, _T("平移"));
    	m_wndToolBar.SetButtonText(6, _T("改色"));
    	m_wndToolBar.SetButtonText(7, _T("面积"));
    
    }

    SetButtonText用来设置按钮显示的文字,怎么显示在图标下方,博主也还没整明白,搞定后再来更新吧!

    但是这里需要注意的是,因为文字显示在图标右边,所以需要将图标的宽度调大(默认是16)

    否则显示不全。

    3、在MainFrm的OnCreate中创建完toolbar后调用我们刚写的函数OnLoadToolBarBitmap即可实现图标替换。

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    		return -1;
    
    	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC ) ||
    		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    	{
    		TRACE0("未能创建工具栏\n");
    		return -1;      // 未能创建
    	}
    
    	if (!m_wndStatusBar.Create(this))
    	{
    		TRACE0("未能创建状态栏\n");
    		return -1;      // 未能创建
    	}
    	m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
    
    	// TODO: 如果不需要可停靠工具栏,则删除这三行
    	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    	EnableDocking(CBRS_ALIGN_ANY);
    	DockControlBar(&m_wndToolBar);
    
    	OnLoadToolBarBitmap();
    
    	return 0;
    }

    这样替换没有改变按钮的ID,所以并不会影按钮的事件响应。即如果想为新增的按钮添加事件,给按钮设置ID,添加命令响应即可。

    除了这个方法外,还可以将所需图标依次排列做成一个bmp,然后替换工具栏的资源图片即可。这个忘了具体怎么实现的了,想起来再更吧!

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 本实例根据是在工具栏按钮追加文本的显示。效果如下图所示: 02. 开发环境 系统环境:Windows 10 开发环境:Visual Studio 2019 03. 关键技术 使用方法SetButtonText就可以设置按钮上的文本。 CToolBa

    00. 目录

    01. 案例概述

    工具栏中的按钮并不一定是都显示按钮文本的,用户可以根据当前的操作随时变化,这样可以提高程序的应用性。本实例根据是在工具栏按钮追加文本的显示。效果如下图所示:

    在这里插入图片描述

    02. 开发环境

    系统环境:Windows 10

    开发环境:Visual Studio 2019

    03. 关键技术

    使用方法SetButtonText就可以设置按钮上的文本。

    CToolBar::SetButtonText
    
    BOOL SetButtonText( int nIndex, LPCTSTR lpszText );
    
    返回值:如果成功则返回非零值;否则返回0。
    
    参数: nIndex 要设置其文本的按钮的索引。  
    lpszText 指向要被设置到一个按钮上的文本。  
    
    说明:此成员函数用来设置一个按钮上的文本。
    
    请参阅:CToolBar::GetButtonText 
    

    04. 程序设计

    4.1 新建一个基于单文档的应用程序。

    4.2 在OnCreate函数后面追加部分代码。

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    		return -1;
    
    	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | 
                                   CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    	{
    		TRACE0("未能创建工具栏\n");
    		return -1;      // 未能创建
    	}
    
    	if (!m_wndStatusBar.Create(this))
    	{
    		TRACE0("未能创建状态栏\n");
    		return -1;      // 未能创建
    	}
    	m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
    
    	// TODO: 如果不需要可停靠工具栏,则删除这三行
    	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    	EnableDocking(CBRS_ALIGN_ANY);
    	DockControlBar(&m_wndToolBar);
    
    	//设置工具栏按钮文本
    	CString str[] = {TEXT("新建"), TEXT("打开"), TEXT("保存"), TEXT(""), TEXT("剪切"), 
    		TEXT("复制"), TEXT("粘贴"), TEXT(""), TEXT("打印"), TEXT("帮助") };
    
    	for (int i = 0; i < 10; i++)
    	{
    		m_wndToolBar.SetButtonText(i, str[i]);
    	}
    
    	//设置按钮和图标大小
    	m_wndToolBar.SetSizes(CSize(34, 34), CSize(16, 16));
    
    	return 0;
    }
    

    05. 秘笈心法

    06. 源码下载

    下载:【MFC】工具栏按钮追加显示文本.rar

    07. 附录

    参考: 《Visual C++从入门到精通(项目案例版)》

    展开全文
  • 本实例实现了工具栏上两个按钮互换位置的功能。运行程序如下图所示选择菜单“查看/改变按钮位置”,程序会将“新建”按钮和“保存”按钮进行位置调换,效果如下图所示。 改变之前 改变之后 02. 开发环境 系统环境...

    00. 目录

    01. 案例概述

    本实例实现了工具栏上两个按钮互换位置的功能。运行程序如下图所示选择菜单“查看/改变按钮位置”,程序会将“新建”按钮和“保存”按钮进行位置调换,效果如下图所示。

    改变之前
    在这里插入图片描述

    改变之后
    在这里插入图片描述

    02. 开发环境

    系统环境:Windows 10

    开发环境:Visual Studio 2019

    03. 关键技术

    本实例通过CToolBar 类的SetButtonInfo方法实现,SetButtonInfo方法用来设置工具栏按钮的相关信息,语法如下:

    void SetButtonInfo( int nIndex, UINT nID, UINT nStyle, int iImage );
    参数说明:
        nIndex 工具栏上按钮的位置
        nID 工具栏按钮在工程中的资源ID值
        nStyle 工具栏按钮的风格
        iImage 工具栏按钮的图片索引值
    

    04. 程序设计

    (1)新建基于单文档视图结构的应用程序。

    (2)修改Menu资源IDR_MAINFRAME,在菜单“视图”下新建子菜单,设置ID属性为ID_CHANGE,设置Caption属性为“改变按钮位置”。

    (3)在改变按钮位置菜单中添加按键事件处理程序,代码如下:

    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    	ON_WM_CREATE()
    	ON_COMMAND(ID_Change, &CMainFrame::OnChange)
    END_MESSAGE_MAP()
        
    
    void CMainFrame::OnChange()
    {
    	// TODO: 在此添加命令处理程序代码
    	UINT newId = 0;
    	UINT oldId = 0;
    
    	//获取ID
    	newId = m_wndToolBar.GetItemID(0);
    	oldId = m_wndToolBar.GetItemID(1);
    
    	m_wndToolBar.SetButtonInfo(0, oldId, 0, 1);
    	m_wndToolBar.SetButtonInfo(1, newId, 0, 0);
    
    	//重新绘制工具栏
    	//m_wndToolBar.Invalidate();
    }
    
    

    05. 秘笈心法

    改变工具栏按钮的好处

    通过改变工具按钮的位置,来更加方便的进行操作,使最常用的按钮始终保持在最前面,还可以通过更改按钮位置来适应个人的喜好。

    06. 源码下载

    下载:【MFC】可调整按钮位置的工具栏.rar

    07. 附录

    参考: 《Visual C++从入门到精通(项目案例版)》

    展开全文
  • MFC Toolbar 工具栏按钮添加消息响应

    千次阅读 2018-03-27 23:49:31
    工具栏按钮消息响应需要的是对应按钮的命令ID。对于动态方式创建的工具栏,其按钮的命令ID在类向导ID列表中是找不到的,只能找到图标的ID。按下述步骤不能添加事件响应。(1)VS2010 打开类向导,选择“Message ...
  • MFC工具栏bmp彩色图标

    千次阅读 2017-06-18 07:22:51
    2.MFC工具栏控件  创建工具栏步骤:  (1)在Resource View中插入新toolbar  (2)在toolbar上双击增加按钮,更改ID为ID_BUTTON,编译后在resource.h中即可看到  #define ID_BUTTON1 32771  ...
  • VC++在窗体工具栏添加带文本和图标按钮,也就是类似Windows记事本一样的按钮,虽然简单,但挺实用,VC新手一定要看一下,窗体菜单及按钮的布局是学习VC窗体的一些基本技巧 。
  • VC MFC工具栏(CToolBar)控件 工具栏 工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件...
  • 本案例实现了一个带有图标工具栏按钮,效果如下图所示。 02. 开发环境 系统环境:Windows 10 开发环境:Visual Studio 2019 03. 关键技术 工具栏CToolBar提供了一个GetToolBarCtrl方法,用于获得一
  • mfc单文档程序运行后,左上角有一个系统自动生成的工具栏,点击该工具栏右边的小倒三角形,会出现如下图所示的自定义添加或删除按钮的选项 ![图片说明]...
  • 工具栏生成器(Toolbar Creator) 是专门为程序设计人员进行真彩色工具条设计的工具。 您或许有过这样的经历,为了设计一个漂亮的工具条,你要先找着或者自己做出每个小图标, ,最后为了把这些四处搜刮的小图片,凑成...
  • 00. 目录 文章目录00. 目录01. 案例概述02. 开发环境03. 关键技术04. 程序设计05. 秘笈心法06. 源码下载07....01. 案例概述 ...使用工具栏类CToolBar的SetButtonInfo方法可以修改工具栏按钮的样式,方法中的nStyle
  • MFC工具栏不显示图标

    千次阅读 2017-06-07 17:00:49
    今天用VS2015新建一个MFC项目,添加工具栏后,导入图片,运行时工具栏按钮是空的,没有显示图标,代码如下: CImageList _imgList; _imgList.Create(20, 20, ILC_COLOR32 | ILC_MASK, 0, 1); DWORD dIcon[] = {...
  • MFC 自绘图标按钮

    2012-10-10 10:58:11
    自绘图标按钮,可添加bitmap,icon图标,改变背景,字体颜色及大小,功能挤全
  • MFC 图标和文本共存的按钮

    热门讨论 2010-11-18 17:26:21
    创建CButton类的派生类CImageButton从而在普通按钮上实现图标和文本共存的效果
  • 工具栏按钮的热点效果可以通过CreateEx方法来实现,在调用该方法创建工具栏之前还要创建两个图像列表,并为工具栏按钮和热点效果时的按钮关联不同图像列表的图像。效果如下图所示。 某个按钮被选中,其图标会改变。 ...
  • MFC工具栏既显示图标又显示文字

    千次阅读 2014-03-18 17:48:36
    默认情况下,MFC工具栏只是显示图标,要显示图标和文字(图标在左文字在右) 在CreateEx时加入TBSTYLE_LIST,便可以显示了 可以使用SetButtonText的方式给图标添加文字
  • 使用MFC向导可以创建基于文档视图结构的应用程序也可以创建基于对话框的应用程序,向导默认生成的文档视图结构的应用程序带有工具栏,而对话框的应用程序没有带任何工具栏,本实例演示如何在对话框中创建工具栏,...
  • MFC菜单栏及工具栏实现

    千次阅读 2018-04-14 12:32:21
    MFC菜单实现: 在资源视图中,右键工程名.rc--&gt;添加资源,选择Menu。对Menu设置ID,并对Menu菜单进行设置(即添加菜单的名字) 在C***Dlg.h中,添加CMenu m_Menu; 在C***Dlg.c的初始化中,添加m_Menu....
  • ![图片说明](https://img-ask.csdn.net/upload/201606/01/1464747147_51385.png)
  • 在使用VC开发对话框程序时不像开发单文档程序和多文档...最近在开发一个程序时,想尝试在对话框程序里面添加 工具栏 及其 按钮tooltip,于是便有了这篇文章,希望把经验总结下来以方便自己以后查询以及各位同仁查询!
  • MFC 对话框 添加 工具栏 MFC中如何删除工具栏中多余的图标 刚学习MFC的时候,发现在MFC资源视图里面编辑工具栏的时候,多余的图标没有删除键,其实只要把你要删除的图标按住并往外拖就可以了。 ...
  • MFC中,ToolBar上的button绘制图标,默认只支持16色,如果从Icon资源将超过16色的bmp拷贝到ToolBar的button上会出现颜色失真,...首先,在设计工具栏按钮功能的时候,我们可以先忽略button的图标,可以先在button上写上
  • MFC中如何删除工具栏中多余的图标

    千次阅读 2015-01-25 18:26:45
    刚学习MFC的时候,发现在MFC资源视图里面编辑工具栏的时候,多余的图标没有删除键,其实只要把你要删除的图标按住并往外拖就可以了。
  • 现在运行的时候工具栏那边都是清一色的没有图标,也不知道那个按钮是那个功能。 我在网上找的基本上都是加载256色的位图,没有加载小图标的,想请高手指教我应该怎么加载ICON里面的图标资源的。要加载的图标资源已经...
  • mfc图标工具栏的实现

    千次阅读 2011-10-24 21:02:19
    int CMainFrame::... // TODO: 如果不需要可停靠工具栏,则删除这三行 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); return 0; }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,748
精华内容 1,499
关键字:

mfc工具栏按钮图标