在对话框添加真彩色的工具条

原创 2004年09月20日 09:20:00

在对话框添加一个工具条,远没有在文档视图里面加工具条方便。如果套用文档视图里面ctoolbar类,又不能像在文档里面一样添加浮动提示。以下是我在实际应用中做的一个具有提示文字的真彩色的工具条。

 

在类里面添加成员变量:

CToolBarCtrl toolbar;

在初始化对话框的时候:

RECT rect;
rect.top=0;
rect.left=0;
rect.right=20;rect.bottom=20;
CBitmap bitmap;
CImageList imageList;
bitmap.LoadBitmap(IDB_BITMAP4);
imageList.Create(16,16,ILC_COLORDDB|ILC_MASK,13,1);
imageList.Add(&bitmap,RGB(255,0,255));
toolbar.Create(WS_CHILD|WS_VISIBLE|CCS_TOP|TBSTYLE_TOOLTIPS|CCS_ADJUSTABLE,rect,this,0);
toolbar.SendMessage(TB_SETIMAGELIST,0,(LPARAM)imageList.m_hImageList);
imageList.Detach();
bitmap.Detach();
buttonbitmap=toolbar.AddBitmap(13,IDR_TOOLBAR1);
toolbar.AddString(IDS_STRING1);
int ncount=0;
for(ncount=0;ncount<13;ncount++)
{
m_button[ncount].iBitmap=buttonbitmap+ncount;
m_button[ncount].idCommand=tool1+ncount;
m_button[ncount].fsState=TBSTATE_ENABLED;
m_button[ncount].fsStyle=TBSTYLE_BUTTON;
m_button[ncount].dwData=0;
m_button[ncount].iString=IDS_STRING1+ncount;
}


toolbar.AddButtons(ncount,m_button);

这样就为工具条添加了13个按钮。

其中的toolbar.SendMessage(TB_SETIMAGELIST,0,(LPARAM)imageList.m_hImageList);

是把原来的工具条——既编译器自己添加的256色的工具条(对应的,如果你需要13个按钮,在编译器帮你生成的工具条中,你也需要手动添加13个按钮。)改成真彩色的工具条的方法。在此之前,你要把那真彩色的图片导入到对话框的工程中来。

 

其次就是添加文字提示:

BOOL CToolbarDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{

 
TOOLTIPTEXT *tt = (TOOLTIPTEXT *)lParam;

 


CString Tip;

switch(tt->hdr.code)

{

case TTN_NEEDTEXT:

 

if(tt->hdr.idFrom)
Tip.LoadString(tt->hdr.idFrom+1000);

strcpy(tt->szText,(LPCSTR)Tip);

 

break;

}

 

 

 return CDialog::OnNotify(wParam, lParam, pResult);
}

在提示文字之前,你需要增加13个string资源,为了方便,我把string的id号都比对应的工具条按钮的id大1000。这样就可以建立一一对应的关系!

 

        差不多到这地步,就完成了一个基于对话框的真彩色工具条。不过还有一点瑕疵的是:工具条上的按钮,不能像基于文档的工具条按钮那样可以设成自由的大小,这里的按钮不能大于20 X 24大小,不然就会有一部分显示不出来。如果有人有更好的方法,请告诉我!

 

对话框中添加工具条

在对话框中添加工具条主要有三个任务: 1、创建工具条按钮; 2、为按钮指定图标; 3、给按钮添加响应事件。         下面将利用资源管理器(也可以通过代码直接创建,这里占时不讨论...
  • u010260855
  • u010260855
  • 2014年03月30日 11:01
  • 1120

VC 2010 + MFC : 在对话框里面加入工具条CMFCToolBar

VC 2010 + MFC : 在对话框里面加入工具条CMFCToolBar By:章永辉              VC 2010 + MFC 新库的资料很少,以下给出本人的实现方...
  • CNHK1225
  • CNHK1225
  • 2015年07月23日 09:48
  • 2498

MFC之在对话框创建菜单、工具栏、状态栏

这篇博客主要解决3个问题: 1、如何在对话框资源上创建菜单,用菜单项控制工具栏和状态栏的显示与隐藏; 2、如何在对话框资源上创建工具栏,并实现工具栏上按钮的响应; 3、如何在对话框资源上创建状态栏,在...
  • GK_2014
  • GK_2014
  • 2015年06月03日 19:11
  • 4021

MFC 在对话框中添加工具条

1.在ResourceView里加入Toolbar资源,命名IDR_TOOLBAR12.在主程序的.h文件中加入变量: CToolBar m_wndtoolbar;//添加...
  • t1234xy4
  • t1234xy4
  • 2016年03月17日 12:44
  • 277

VC++6.0实现真彩工具条

最近在用VC++6.0做一个毕业设计,想要实现一个24bit位图真彩的工具条。经过努力,花了5个多小时(太笨了!),总算是把它给搞了出来。做了一个Demo运行截图如下: 鼠标放到工具栏按钮上时会高亮...
  • bcypxl
  • bcypxl
  • 2013年12月20日 21:48
  • 2064

模式对话框非模式对话框添加工具栏、菜单、状态栏总结

一、菜单与gongju
  • u010260855
  • u010260855
  • 2014年10月11日 09:30
  • 983

在工具栏上加控件

我们经常看到  有些控件式放到工具栏上,但是我用微软工具
  • wuan584974722
  • wuan584974722
  • 2014年10月05日 17:30
  • 1048

SDI在自定义的工具栏上添加下拉控件

0、首先到自己的工具条上新建一个控件,并命名新ID 1、拷贝FlatComboBox.h和FlatComboBox.cpp到工程目录下 2、建立新类 class CTracke...
  • skyhuangdan
  • skyhuangdan
  • 2014年06月13日 13:05
  • 510

利用Visual C++设计真彩色工具条

最终效果图   一直在寻找制作一个 24bit 及以上真彩工具条的简单有效方法,在各种VC站点都找到了很多有关这方面的文章和介绍,但是都存在一个不足的地方,介绍的不够详细,对初学者来说有点难度。...
  • guoduhua
  • guoduhua
  • 2016年12月22日 19:30
  • 109

对话框中怎样加入工具条综述

李国帅于2008-1收集和编辑在对话框添加一个工具条,远没有在文档视图里面加工具条方便。如果套用文档视图里面ctoolbar类,又不能像在文档里面一样添加浮动提示。以下是我在实际应用中做的一个具有提示...
  • lgs790709
  • lgs790709
  • 2017年12月18日 18:32
  • 14
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在对话框添加真彩色的工具条
举报原因:
原因补充:

(最多只允许输入30个字)