资源描述:
《vc对话框的工具栏添加图标》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VC对话框的工具栏添加图标,文字,提示信息(2011-05-1416:17:46)转载▼标签:杂谈分类:MFC编程学习OnInitDialog()中//先导入图标文件,假设有5个工具栏按钮m_imagelist.Create(24,24,ILC_COLOR24
2、ILC_MASK,1,1);//创建按图像列表m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON_Find));//将图像与列表一一关联m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON_Look));......UINTarra
3、y[5]={0};//定义工具栏数组for(inti=0;i<5;i++){ array[i]=9000+i;//为工具栏中每个按钮添加按钮索引}m_toolbar.Create(this);//创建工具栏窗口m_toolbar.SetButtons(array,5);//为工具栏添加5个按钮//为每个按钮设置名称m_toolbar.SetButtonText(0,"****");m_toolbar.SetButtonText(1,"*****");m_toolbar.SetButtonText(2,"*****");m_toolbar.SetButtonText(3
4、,"*****");m_toolbar.SetButtonText(4,"退出系统");m_toolbar.GetToolBarCtrl().SetButtonWidth(60,200);//设置按钮的宽度m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);//关联图片到按钮上m_toolbar.SetSizes(CSize(105,60),CSize(28,40));//设置按钮大小m_toolbar.EnableToolTips(TRUE);//激活提示信息2.在C***Dlg.h//添加事件声明(最好写在AF
5、X_MSG宏外,否则可能出现编译错误)afx_msgBOOLOnToolTipText(UINTnID,NMHDR*pNMHDR,LRESULT*pResult);并在盖头文件中添加#include,否则会提示AfxLoadString错误3.在C***Dlg.cpp//添加消息映射(最好写在AFX_MSG_MAP宏外,否则可能出现编译错误ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText)ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTi
6、pText)4.在C***Dlg.cpp中添加OnToolTipText的定义BOOLOnToolTipText(UINTnID,NMHDR*pNMHDR,LRESULT*pResult){ASSERT(pNMHDR->code==TTN_NEEDTEXTA
7、
8、pNMHDR->code==TTN_NEEDTEXTW); //ifthereisatoplevelroutingframethenletithandlethemessage if(GetRoutingFrame()!=NULL)returnFALSE; //tobethoroughwewillnee
9、dtohandleUNICODEversionsofthemessagealso!! TOOLTIPTEXTA*pTTTA=(TOOLTIPTEXTA*)pNMHDR; TOOLTIPTEXTW*pTTTW=(TOOLTIPTEXTW*)pNMHDR; TCHARszFullText[512]; CStringstrTipText; UINTnID=pNMHDR->idFrom; if(pNMHDR->code==TTN_NEEDTEXTA&&(pTTTA->uFlags&TTF_IDISHWND)
10、
11、 pNMHDR->code==T
12、TN_NEEDTEXTW&&(pTTTW->uFlags&TTF_IDISHWND)) { //idFromisactuallytheHWNDofthetool nID=::GetDlgCtrlID((HWND)nID); } if(nID!=0)//willbezeroonaseparator { AfxLoadString(nID,szFullText); strTipText=szFullText; #ifndef_UNICODE if(pNMHDR->c