我的程序除了创建主窗体(MainFrm)工具栏外,在底部窗体(BottomWnd)还创建一个工具栏,具体代码和实现过程如下:
//MainFrm.cpp
static UINT BASED_CODE buttons[] =
{
IDM_ZOOMIN,
IDM_ZOOMOUT,
};
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1; // 创建工具条
m_bmpToolBar.LoadBitmap(IDB_MAINFRAMETOOLBAR);
m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS,CRect(2, 2, 2, 2));
m_wndToolBar.SetSizes(CSize(37, 34), CSize(30, 28)); //其余代码省略
...
}//BottomWnd.cpp
static UINT BASED_CODE buttons[] =
{
IDM_DETAILZOOMIN,
IDM_DETAILZOOMOUT,
};int CBottomWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
// 创建工具条
m_bmpToolBar.LoadBitmap(IDB_DETAILTOOLBAR);
m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,CBRS_GRIPPER| CBRS_TOOLTIPS|CBRS_SIZE_FIXED,CRect(2, 2, 2, 2));
m_wndToolBar.SetSizes(CSize(37, 34), CSize(30, 28));
m_wndToolBar.SetButtons(buttons, sizeof(buttons)/sizeof(UINT));
m_wndToolBar.GetToolBarCtrl().AddBitmap(sizeof(buttons)/sizeof(UINT),&m_bmpToolBar); //其余代码省略
...
}其中:
IDM_ZOOMIN "\nZoom in"
IDM_ZOOMOUT "\nZoom out"
IDM_DETAILZOOMIN "\nZoom in"
IDM_DETAILZOOMOUT "\nZoom out"但在程序运行起来后,鼠标移动到主窗体的工具栏上任意一个按钮,会出来提示信息,例如:"
Zoom in",但是鼠标移动到底部窗体的工具栏上的任意一个按钮上,只会出现提示信息的第一个字母,例如"Z",不知道为什么?这个问题困扰我好久了,请指点!另外注明,我的程序是Unicode的.
//MainFrm.cpp
static UINT BASED_CODE buttons[] =
{
IDM_ZOOMIN,
IDM_ZOOMOUT,
};
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1; // 创建工具条
m_bmpToolBar.LoadBitmap(IDB_MAINFRAMETOOLBAR);
m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS,CRect(2, 2, 2, 2));
m_wndToolBar.SetSizes(CSize(37, 34), CSize(30, 28)); //其余代码省略
...
}//BottomWnd.cpp
static UINT BASED_CODE buttons[] =
{
IDM_DETAILZOOMIN,
IDM_DETAILZOOMOUT,
};int CBottomWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
// 创建工具条
m_bmpToolBar.LoadBitmap(IDB_DETAILTOOLBAR);
m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,CBRS_GRIPPER| CBRS_TOOLTIPS|CBRS_SIZE_FIXED,CRect(2, 2, 2, 2));
m_wndToolBar.SetSizes(CSize(37, 34), CSize(30, 28));
m_wndToolBar.SetButtons(buttons, sizeof(buttons)/sizeof(UINT));
m_wndToolBar.GetToolBarCtrl().AddBitmap(sizeof(buttons)/sizeof(UINT),&m_bmpToolBar); //其余代码省略
...
}其中:
IDM_ZOOMIN "\nZoom in"
IDM_ZOOMOUT "\nZoom out"
IDM_DETAILZOOMIN "\nZoom in"
IDM_DETAILZOOMOUT "\nZoom out"但在程序运行起来后,鼠标移动到主窗体的工具栏上任意一个按钮,会出来提示信息,例如:"
Zoom in",但是鼠标移动到底部窗体的工具栏上的任意一个按钮上,只会出现提示信息的第一个字母,例如"Z",不知道为什么?这个问题困扰我好久了,请指点!另外注明,我的程序是Unicode的.
解决方案 »
- VC串口通信,已经打开串口,但是无法收到单片机发上来的数据
- ACCESS数据库GPS数据排序问题?
- c++ 校园导航
- 求助:怎么用wx做一个winmp类型的面板?
- 为什么这些代码不能改变窗口类型?在VC6.0 和 VC2005 都试过.若能授渔,告诉是如何发现错误的,给分时会……
- 自绘标题栏后,菜单的位置如果调整?
- CListCtrl实现ACESee8的图片列表风格界面
- 急,如何让在工作者线程中创建的CWnd子类能够响应消息?
- 为什么说我使用了没有定义的类??????
- 总是感觉自己的程序结构很乱,不各位大虾有没有办法改善?祝大家新年快乐!
- 有简单的方法改变CListCtrl也就是ListView的滚动条的颜色吗
- 切分窗口后动态切换多个视图的问题(在线急等)
http://csdn.aehk.com/13.htm
http://www.vckbase.com/document/viewdoc/?id=265