自定义工具栏按钮事件如何相应.

xuegao007 2010-06-23 04:43:21
CMytool:public toolbar;
在CmyTool上放了几个按钮ID1, ID2;
如何在CMyTool内,响应单击ID1.
我用
ON_COMMAND(ID1, &f1);//不可以实现.
...全文
87 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuegao007 2010-06-24
  • 打赏
  • 举报
回复
这个代码我最终要封装到DLL中的.请大家帮我看看哪出问题了.
xuegao007 2010-06-24
  • 打赏
  • 举报
回复
代码如下:
//.h
#pragma once


// CCustomMenuBar

class AFX_EXT_CLASS CCustomMenuBar : public CToolBar
{
DECLARE_DYNAMIC(CCustomMenuBar)

public:
CCustomMenuBar();
virtual ~CCustomMenuBar();

protected:
DECLARE_MESSAGE_MAP()
public:
bool CreateMenuBar( CWnd* pParentWnd );
public:
void fMenu1();
};

//.CPP
// CustomMenuBar.cpp : 实现文件
//

#include "stdafx.h"
#include "CustomMenuBar.h"


// CCustomMenuBar

IMPLEMENT_DYNAMIC(CCustomMenuBar, CToolBar)

CCustomMenuBar::CCustomMenuBar()
{
}

CCustomMenuBar::~CCustomMenuBar()
{
}

#define MENU_ID1 10
#define MENU_ID2 11
#define MENU_ID3 12
#define MENU_ID4 13
BEGIN_MESSAGE_MAP(CCustomMenuBar, CToolBar)
ON_COMMAND(10, &fMenu1)
END_MESSAGE_MAP()

bool CCustomMenuBar::CreateMenuBar( CWnd* pParentWnd )
{
if (pParentWnd == NULL || !CreateEx(pParentWnd, TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY, CRect(0,0,0,0)) )
{
TRACE("\nCreateMenuBar return false");
return false;
}

SetWindowText( _T("MenuBar ") );
SetButtons( NULL, 8 );
SetSizes( CSize(40, 24), CSize(0, 0) );
SetHeight( 24 );
SetButtonText( 0, _T("Menu1") );
SetButtonText( 1, _T("Menu2") );
SetButtonText( 2, _T("Menu3") );
SetButtonText( 3, _T("Menu4") );
SetButtonInfo( 0, MENU_ID1, TBBS_AUTOSIZE|TBBS_NOPREFIX, -1 );
SetButtonInfo( 1, MENU_ID2, TBBS_AUTOSIZE|TBBS_NOPREFIX, -1 );
SetButtonInfo( 2, MENU_ID3, TBBS_AUTOSIZE|TBBS_NOPREFIX, -1 );
SetButtonInfo( 3, MENU_ID4, TBBS_AUTOSIZE|TBBS_NOPREFIX, -1 );

EnableDocking( CBRS_ALIGN_TOP );
return true;
}

void CCustomMenuBar::fMenu1()
{
AfxMessageBox( _T("Menu1") );
}
BloodFighter 2010-06-24
  • 打赏
  • 举报
回复
在CMyTool内部处理OnCommand
liyelun 2010-06-24
  • 打赏
  • 举报
回复
不懂帮顶
xuegao007 2010-06-24
  • 打赏
  • 举报
回复
自己搞定!
xuegao007 2010-06-23
  • 打赏
  • 举报
回复
楼上你好,
我要在CMyTool内响应这个事件.另外,CMyTool在我的Dll内.
悟迟 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 xuegao007 的回复:]
ON_COMMAND(ID1, &f1);//不可以实现.
[/Quote]为什么不可以实现
wuhuwy 2010-06-23
  • 打赏
  • 举报
回复
建议你做一个相同Id的菜单,在菜单的响应函数里来实现,这样也就能响应工具栏按钮了

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧