社区
界面
帖子详情
自制的工具栏如何动态实现启用和禁用
精灵猫1
2006-06-27 12:43:14
工具栏内自制了多个按钮,希望对某个按钮实现启用禁用功能。禁用时要灰化。用UPDATA_COMMAND_UI好像不行。
...全文
407
20
打赏
收藏
自制的工具栏如何动态实现启用和禁用
工具栏内自制了多个按钮,希望对某个按钮实现启用禁用功能。禁用时要灰化。用UPDATA_COMMAND_UI好像不行。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
livedeal
2006-06-28
打赏
举报
回复
汗~~~~~
精灵猫1
2006-06-28
打赏
举报
回复
我的按钮显示是变灰色了,但是图像也没有了,就是一个整块灰色的方框
livedeal
2006-06-28
打赏
举报
回复
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 我是在这个里面的`
livedeal
2006-06-28
打赏
举报
回复
if (!m_wndFoolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE |CBRS_GRIPPER |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED|CBRS_LEFT ,
CRect(0, 0, 0, 0), ID_VIEW_FOOL) ||
!m_wndFoolBar.LoadToolBar(IDR_FOOL))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
for(int x=0;x<14;x++)
m_wndFoolBar.SetButtonStyle(x*2+1,m_wndFoolBar.GetButtonStyle(0)|TBBS_WRAPPED);
m_wndFoolBar.EnableDocking(CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT);
DockControlBar(&m_wndFoolBar);
m_wndFoolBar.SetWindowText(_T("工具"));
精灵猫1
2006-06-28
打赏
举报
回复
我的也是在资源里画的啊。那你怎么创建工具栏的每个按钮呢?
livedeal
2006-06-28
打赏
举报
回复
你这样的我没有试过,我的图形是在资源里画的,灰化的时候就是那个图形灰掉的,不知道你的这个是什么原因~~~
精灵猫1
2006-06-28
打赏
举报
回复
这是我创建工具栏的函数,我发现随便只要是灰化就是沿着图标的线围出的一个灰色的框。不象其他按钮灰化是颜色变灰,里面还是能看出是什么图标的。是不是图标里面的颜色都变灰了,这个有什么解决方法吗
void CMainFrame::CreateToolBar()
{
m_wndToolBar.CreateEx(this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);
//创建图形列表
CImageList img;
img.Create(IDB_HOT, 21, 0, RGB(255, 0, 255));
m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();
img.Create(IDB_HOT, 21, 0, RGB(255, 0, 255));
m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
img.Detach();
//设置工具条按钮宽度最小、最大值
m_wndToolBar.GetToolBarCtrl().SetButtonWidth(28, 80);
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT);
m_wndToolBar.SetButtons(NULL, 10);//按钮个数
// 创建每个按钮
for(int i=0; i<10; i++)
m_wndToolBar.SetButtonInfo(i, (ID_MAINBMP+i), TBSTYLE_BUTTON, i);
CRect rectToolBar;
//获取工具条按钮大小
m_wndToolBar.GetItemRect(0, &rectToolBar);
//设置工具条的按钮大小和图标大小
m_wndToolBar.SetSizes(CSize(rectToolBar.Width(),(rectToolBar.Height()+5)), CSize(21,22));
}
livedeal
2006-06-27
打赏
举报
回复
可以的
精灵猫1
2006-06-27
打赏
举报
回复
对,就是这样的。我也是画图板画的,但我想任何时候都能灰化或者激活。这样可以吗?
livedeal
2006-06-27
打赏
举报
回复
自己设置的什么按钮啊~??我这个也是工具栏,都是自己做的,和画图板里的一样的`~不过你的ID要连续的~~~~
精灵猫1
2006-06-27
打赏
举报
回复
livedeal(怀念) :
我的按钮是自己设置的,也可以这样写吗?
syy64(太平洋) :
如何得到按钮窗口的句柄呢?我用GetDlgItem()不行。
livedeal
2006-06-27
打赏
举报
回复
网络有问题,发了两次`
livedeal
2006-06-27
打赏
举报
回复
afx_msg void OnUpdateDrawType(CCmdUI* pCmdUI);文件头
ON_UPDATE_COMMAND_UI_RANGE(ID_FD,ID_DELETE3, OnUpdateDrawType)//cpp里的
void CFlwDataView::OnUpdateDrawType(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CFlwDataDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
switch(pCmdUI->m_nID)
{
case ID_PEN:
pCmdUI->SetCheck(m_tpwhich==DRAW_PEN);
pCmdUI->Enable(m_tpwhich==DRAW_PEN?FALSE:TRUE);
break;
case ID_LINE:
pCmdUI->SetCheck(m_tpwhich==DRAW_LINE);
break;
case ID_DISTILL:
pCmdUI->SetCheck(m_tpwhich==DRAW_DIST);
break;
}}
livedeal
2006-06-27
打赏
举报
回复
afx_msg void OnUpdateDrawType(CCmdUI* pCmdUI);文件头
ON_UPDATE_COMMAND_UI_RANGE(ID_FD,ID_DELETE3, OnUpdateDrawType)//cpp里的
void CFlwDataView::OnUpdateDrawType(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CFlwDataDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
switch(pCmdUI->m_nID)
{
case ID_PEN:
pCmdUI->SetCheck(m_tpwhich==DRAW_PEN);
pCmdUI->Enable(m_tpwhich==DRAW_PEN?FALSE:TRUE);
break;
case ID_LINE:
pCmdUI->SetCheck(m_tpwhich==DRAW_LINE);
break;
case ID_DISTILL:
pCmdUI->SetCheck(m_tpwhich==DRAW_DIST);
break;
}}
syy64
2006-06-27
打赏
举报
回复
需要按钮窗口局柄。
精灵猫1
2006-06-27
打赏
举报
回复
我用过EnableWindow函数,但是运行时会显示错误,好像是什么句柄出错
syy64
2006-06-27
打赏
举报
回复
使用EnableWindow函数
精灵猫1
2006-06-27
打赏
举报
回复
在哪个函数里写?
能具体一点吗
livedeal
2006-06-27
打赏
举报
回复
在那个函数里面写
pCmdUI->Enable(m_tpwhich==DRAW_PEN?FALSE:TRUE);
精灵猫1
2006-06-27
打赏
举报
回复
up
Android
动态
启用
和
禁用
Component(activity,receiver,service)
本文介绍了如何在Android系统中
动态
地
启用
和
禁用
Activity、BroadcastReceiver和Service。通常这些组件在AndroidManifest.xml中配置,但通过PackageManager的setComponentEnabledSetting方法,可以
实现
对应用组件的运行时控制。
jquery input标签的
禁用
和
启用
disabled
本文介绍如何利用HTML的disabled属性结合JavaScript,
实现
在不同条件下
动态
禁用
或
启用
输入框的功能。通过示例展示了在有无武汉接触史的情况下,个人健康信息输入框的
动态
控制。
Unity3d中关于脚本的
启用
和
禁用
的意义及脚本前面的复选框消失的解释
本文详细介绍了Unity3d中脚本
启用
和
禁用
的真正含义,揭示了即使
禁用
脚本,其他脚本仍能调用其成员。
禁用
脚本的主要影响在于Unity不会自动调用
禁用
脚本的MonoBehaviour方法,但不影响外部调用。同时,解释了脚本前复选框消失是因为脚本中没有继承自MonoBehaviour的方法,Unity不再需要控制其执行状态。
LayUI 多选框
动态
加载、
启用
、
禁用
、赋值、取值等js
实现
本文介绍如何使用layui的formSelects插件进行多选框的
动态
加载、
禁用
、
启用
、赋值和取值等操作。通过具体代码示例,展示了如何通过AJAX
动态
填充选项,以及如何对多选框的状态进行控制。
unity中
禁用
或
启用
游戏对象
本文介绍了在Unity引擎中
禁用
或
启用
游戏对象的两种方法:通过使用`enable`属性和使用`SetActive()`函数。这两种方法都可以帮助开发者
动态
控制游戏对象的状态,从而影响其在游戏中的显示和交互。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章