创建动态工具栏并设置工具栏按钮提示
2013-08-31 16:07
204 查看
1、创建对话框程序,导入8个图标资源。
2、在对话框头文件中声明变量,代码如下:
CToolBar m_ToolBar;
CImageList m_ImageList;
CString m_TipText;
3、在对话框中oninitdialg函数中创建工具栏,如下:
//创建图像列表
m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
//向图像列表中添加图标
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
UINT array[11];
for(int i=0;i<11;i++)
{
if(i==3 || i==7 || i==9)
array[i] = ID_SEPARATOR; //第4、8、10个按钮为分隔条
else
array[i] = i+1001;
}
m_ToolBar.Create(this);
m_ToolBar.SetButtons(array,11);
m_ToolBar.SetButtonText(0,"新建");
m_ToolBar.SetButtonText(1,"打开");
m_ToolBar.SetButtonText(2,"保存");
m_ToolBar.SetButtonText(4,"剪切");
m_ToolBar.SetButtonText(5,"复制");
m_ToolBar.SetButtonText(6,"粘贴");
m_ToolBar.SetButtonText(8,"打印");
m_ToolBar.SetButtonText(10,"帮助");
//关联图像列表
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
m_ToolBar.SetSizes(CSize(40,50),CSize(32,32)); //设置按钮和图标的大小
m_ToolBar.EnableToolTips(TRUE);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
4、在对话框头文件中声明OnToolTipNotify函数,代码如下:
afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
5、在对话框的源文件中添加ON_NOTIFY_EX映射宏,如下:
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify)
6、添加消息处理函数OnToolTipNotify的实现部分,如下:
BOOL CToolDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom; //获取工具栏按钮ID
if(nID)
{
UINT nIndex = m_ToolBar.CommandToIndex(nID); //根据ID获取按钮索引
if(nIndex != -1)
{
m_ToolBar.GetButtonText(nIndex,m_TipText); //获取工具栏文本
pTTT->lpszText = m_TipText.GetBuffer(m_TipText.GetLength()); //设置提示信息文本
pTTT->hinst = AfxGetResourceHandle();
return TRUE;
}
}
return FALSE;
}
7、运行结果。
2、在对话框头文件中声明变量,代码如下:
CToolBar m_ToolBar;
CImageList m_ImageList;
CString m_TipText;
3、在对话框中oninitdialg函数中创建工具栏,如下:
//创建图像列表
m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
//向图像列表中添加图标
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
UINT array[11];
for(int i=0;i<11;i++)
{
if(i==3 || i==7 || i==9)
array[i] = ID_SEPARATOR; //第4、8、10个按钮为分隔条
else
array[i] = i+1001;
}
m_ToolBar.Create(this);
m_ToolBar.SetButtons(array,11);
m_ToolBar.SetButtonText(0,"新建");
m_ToolBar.SetButtonText(1,"打开");
m_ToolBar.SetButtonText(2,"保存");
m_ToolBar.SetButtonText(4,"剪切");
m_ToolBar.SetButtonText(5,"复制");
m_ToolBar.SetButtonText(6,"粘贴");
m_ToolBar.SetButtonText(8,"打印");
m_ToolBar.SetButtonText(10,"帮助");
//关联图像列表
m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
m_ToolBar.SetSizes(CSize(40,50),CSize(32,32)); //设置按钮和图标的大小
m_ToolBar.EnableToolTips(TRUE);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
4、在对话框头文件中声明OnToolTipNotify函数,代码如下:
afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
5、在对话框的源文件中添加ON_NOTIFY_EX映射宏,如下:
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify)
6、添加消息处理函数OnToolTipNotify的实现部分,如下:
BOOL CToolDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom; //获取工具栏按钮ID
if(nID)
{
UINT nIndex = m_ToolBar.CommandToIndex(nID); //根据ID获取按钮索引
if(nIndex != -1)
{
m_ToolBar.GetButtonText(nIndex,m_TipText); //获取工具栏文本
pTTT->lpszText = m_TipText.GetBuffer(m_TipText.GetLength()); //设置提示信息文本
pTTT->hinst = AfxGetResourceHandle();
return TRUE;
}
}
return FALSE;
}
7、运行结果。
相关文章推荐
- 动态改变工具栏按钮图标及工具提示文本
- qt中设置按钮工具提示信息
- MFC为工具栏中的工具设置提示信息
- 【初级】VS2015/MFC设置工具栏按钮提示
- VC.NET界面编程中关于的ToolBar(工具栏)的编程应用(二)2008/07/01 19:22 上回说到给工具栏上添加IE风格的下拉菜单按钮,我们通过设置工具栏按钮的风格已经完成了下拉菜单按钮的添加,现在我们准备为下拉菜单按钮中响应下拉箭头部分的实现
- [转]android:动态创建多个按钮 及 批量设置监听
- 动态创建的CButton按钮,在设置字体时为什么不显示
- 微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
- C++语言 为工具栏设置工具提示功能
- VC动态创建工具栏及工具栏上的按钮及为按钮添加消息响应函数
- MFC基于对话框 创建工具栏 工具栏提示 窗口同步缩放 拦截主界面Enter按下 窗口过程 菜单工具栏按钮变灰
- VC下动态创建了BUTTON按钮后,如何设置按钮的Modal Frame风格???
- android:动态创建多个按钮 并给每个按键添加监听事件
- ArcGIS Server 9.3 中动态改变Toolbar上的工具的提示
- :创建一个窗体;在窗体上添加一个按钮(text设置为 选择线颜色);向窗体添加一个颜色对话框(colorDialog1)单击按钮,能够打开一个颜色对话框,选择颜色,且更改画笔颜色
- objective-c 把所有类型为UIButton的子控件放在父视图中央 动态创建按钮
- 增加工具栏提示&修改程序字体&设置文档标题&控制窗口显示&更新菜单选中/不选中状态
- 通过CAA在CATIA中创建自己的工具栏按钮和菜单
- Androoid动态创建ImageView,设置间距方法
- Flex3学习轨迹:创建工具提示