社区
界面
帖子详情
CMFCRibbonEdit怎么禁用?
AthrunArthur
2009-04-26 09:53:53
我用到了CMFCRibbonBaseElement中的控件,我想在程序中把某个控件禁用,就是变成灰色的,不响应用户的输入,但是我发现这之中的控件都没有Enable方法,请问各位高人怎么才能禁用呢?
另外MSDN中提到有个OnEnable方法是给framework调用的,究竟怎么调用呢?
...全文
340
6
打赏
收藏
CMFCRibbonEdit怎么禁用?
我用到了CMFCRibbonBaseElement中的控件,我想在程序中把某个控件禁用,就是变成灰色的,不响应用户的输入,但是我发现这之中的控件都没有Enable方法,请问各位高人怎么才能禁用呢? 另外MSDN中提到有个OnEnable方法是给framework调用的,究竟怎么调用呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
arhisqq
2010-11-28
打赏
举报
回复
ON_UPDATE_COMMAND_UI
方法只适用于鼠标键盘触发frame刷新,
如果是任务触发(比如说,某件事情处理完,需要enable/disable几个控件),就不适用了。
redraw updatewindow等方法都不行。
V01kswagen
2009-09-01
打赏
举报
回复
定义ON_UPDATE_COMMAND_UI,在消息响应函数中添加
pCmdUI->Enable(xxx);
其中xxx是bool变量的条件成员函数
mutou0422
2009-07-16
打赏
举报
回复
http://stackoverflow.com/questions/502640/disable-enable-ribbon-buttons-for-mfc-feature-pack/505352
这有答案
AthrunArthur
2009-05-05
打赏
举报
回复
楼上的解答只能适合一部分控件吧 因为CMFCRibbonButton之类的控件不是从CWnd继承过来的 ,所有好像不能通用的,不过对Edit还是可以的
AI菜鸟实习生
2009-05-01
打赏
举报
回复
CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
pMain->m_wndRibbonBar.GetDlgItem(ID_edit1)->EnableWindow(FALSE);
tian_yang_jian
2009-04-27
打赏
举报
回复
我也试了一下,弄不出来,没有办法帮你了。
Ribbon
Menu_测试
使用VS2010创建一个带
Ribbon
样式的单文档程序 项目类型为:Office 在资源中,可对
Ribbon
进行编辑
Ribbon
控件中,按右键,添加事件处理 图标的添加: 使用 Axialis IconWorkshop 添加一个: 来自数个文件的图像带 添加数个PNG图像(推荐PNG图像,带Alpha透明) 最后保存成BMP格式 在VS资源中,导入BMP,如下: IDB_BMP_ICO IDB_BMP_ICO2 分别用于大图标与小图标 在面板的属性中,分别指定此面板需要采用的LargeImages 与 SmallImages 在面板中的按钮属性中,添加图标 复选框的按钮,需要添加一个 BOOL m_bCheck; 在按钮中,对其进行控件,并在
Ribbon
更新的时候,对复选框进行勾选或取消勾选 void CMainFrame::OnChkTest() { m_bCheck = !m_bCheck; if (m_bCheck) { AfxMessageBox(_T("勾选")); } else { AfxMessageBox(_T("取消")); } } void CMainFrame::OnUpdateChkTest(CCmdUI *pCmdUI) { pCmdUI->SetCheck(m_bCheck); } 程序运行结果如下: 主要菜单响应事件如下代码: void CMainFrame::OnBtn
Edit
Text() { C
MFC
Ribbon
Edit
* p
Edit
A = DYNAMIC_DOWNCAST(C
MFC
Ribbon
Edit
, m_wnd
Ribbon
Bar.FindByID(ID_EDT_A)); C
MFC
Ribbon
Edit
* p
Edit
B = DYNAMIC_DOWNCAST(C
MFC
Ribbon
Edit
, m_wnd
Ribbon
Bar.FindByID(ID_EDT_B)); CString strA; strA = p
Edit
A->Get
Edit
Text(); CString strB; strB = p
Edit
B->Get
Edit
Text(); AfxMessageBox(strA+_T(" - ")+strB); C
MFC
Ribbon
Button* pBtn = DYNAMIC_DOWNCAST(C
MFC
Ribbon
Button, m_wnd
Ribbon
Bar.FindByID(ID_BTN_
EDIT
_TEXT)); } void CMainFrame::OnBtnColor() { C
MFC
Ribbon
ColorButton* pBtn = DYNAMIC_DOWNCAST(C
MFC
Ribbon
ColorButton, m_wnd
Ribbon
Bar.FindByID(ID_BTN_COLOR)); COLORREF color; color = pBtn->GetColor(); BYTE r = GetRValue(color); BYTE g = GetGValue(color); BYTE b = GetBValue(color); CString strColor; strColor.Format(_T("颜色:R:%d-G:%d-B:%d"), r, g, b); AfxMessageBox(strColor); } void CMainFrame::OnSpinNum() { // 怎么会运行两次呢 C
MFC
Ribbon
Edit
* p
Edit
= DYNAMIC_DOWNCAST(C
MFC
Ribbon
Edit
, m_wnd
Ribbon
Bar.FindByID(ID_SPIN_NUM)); CString strGet; strGet = p
Edit
->Get
Edit
Text(); AfxMessageBox(strGet); } void CMainFrame::OnCmbTest() { C
MFC
Ribbon
ComboBox* pCmb = DYNAMIC_DOWNCAST(C
MFC
Ribbon
ComboBox, m_wnd
Ribbon
Bar.FindByID(ID_CMB_TEST)); CString strGet; strGet =
MFC
_
Ribbon
MFC
Ribbon
工程,,很好的参考工程,,如果是使用VS2008的用户,会需要下载 VS2008 SP1,界面风格是Office 2007 ,相信做
MFC
的同仁可以用到
mytest.rar
基于
MFC
_
ribbon
风格界面的状态栏显示信息,以及进度的创建!
MFC
中 C
MFC
Ribbon
Edit
选件类、ID_FILE_OPEN 文件响应命令
1.C
MFC
Ribbon
Edit
选件类 功能区的编辑控件 2.ID_FILE_OPEN 文件响应命令 参考连接
C
MFC
Ribbon
Edit
的按键消息响应
C
MFC
Ribbon
Edit
是实现位于功能区栏的编辑控件。在这里简单介绍下其使用方法及消息响应。以下在VS2008SP1环境: 1.新建一个多文档
Ribbon
工程,名称为:Test
Ribbon
; 2.按如下添加一个菜单项: 3.右键此菜单项,"添加事件处理程序",在这里我们添加到视图类,如下图所示: void CTest
Ribbon
View::On
Edit
Test() {
界面
15,978
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章