如何创建vc2010工具栏,浮动控件

想通过程序在view中创建,而不是在CForm上拖放控件什么的,比如图里的1,2,3,1是一个区域,2是一个浮动工具栏,3可以切换1的区域。我现在想要一个左边有一个带3的... 想通过程序在view中创建,而不是在CForm上拖放控件什么的,比如图里的1,2,3,1是一个区域,2是一个浮动工具栏,3可以切换1的区域。

我现在想要一个左边有一个带3的功能可以切换的浮动工具栏,右边则是一个区域作显示,请问都要用到哪些类啊,我连名字都说不出来,别说帮助文档和相关资料的查询了
展开
 我来答
jxfmw257iou
2011-08-25 · TA获得超过662个赞
知道小有建树答主
回答量:952
采纳率:100%
帮助的人:555万
展开全部
楼上的这位的方法不可取,因为他每次都是将菜单更换,太消耗资源。
我还是真服你了,你有没有仔细看我写的代码呢??
我使用MessageBox("开始了");,只是说这个地方可以放一些代码,实现一些功能,难道你的菜单只是个摆设没有功能吗?
pCmdUI->SetText 来改变时没有任何问题的。一个菜单项 只有2种处理事件一种是COMMAND,一种是 UPDATE_COMMAND_UI,,,pCmdUI->SetText 就是UPDATE_COMMAND_UI事件里的。

GetDlgItem(ID_START)->SetWindowText("开始");这种方法直接导致程序崩溃,因为 菜单不是 窗口控件,CMenu不是继承CWnd 类。

至于你说的 参数 2 从“const char [9]”转换为“LPCTSTR”,是因为vs2010默认使用的是“使用Unicode字符集”,解决方法有2中,一种是 修改 项目属性,在 常规里,“使用多字节字符集”,另一种方法是 在字符串前面加个L 也就是 L“开始”,L“结束”,L“字符串”

以VC++6.0为例,其他版本处理一样。
新加一个菜单项 ID 为:ID_START 名称为 “开始”

假如 你想在 主框架里 实现 对这个菜单的响应(其他类里处理相同)

在 CMainFrame类里定义一个 bool变量 bb;

class CMainFrame : public CFrameWnd
{

protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)

// Attributes
public:
bool bb;//这里是新添加的。
// Operations
public:
。。。。。。。。

在CMainFrame 的构造函数里 初始化 bb

CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
bb=1;//初始化bb
}

然后处理这个菜单事件
按Ctrl+W 调出 MFC 类管理器

Class name 里选择 CMainFrame (根据需求更改的。)
Object IDs 里选择 ID_START
Messages 里 有两个事件 COMMAND 和 UPDATE_COMMAND_UI
分别 添加 为OnStart()和OnUpdateStart()
实现代码:
//下面是菜单的COMMAND事件。
void CMainFrame::OnStart()
{
// TODO: Add your command handler code here
if(bb)
{
MessageBox("开始了");
bb=0;
}

else
{
MessageBox("结束了");
bb=1;
}

}
//下面是菜单的 UPDATE_COMMAND_UI事件。
void CMainFrame::OnUpdateStart(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here

if(bb)
pCmdUI->SetText("开始");
else
pCmdUI->SetText("结束");
//其实pCmdUI还有其他功能,如:Enable(),SetRadio(),SetCheck()

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式