CDialogBar中按钮为灰色不可用的解决办法

做一个编辑器,里面用到了CDialogBar作ToolBar,但是很奇怪的是,放在里面的按钮居然是灰色不可用的。如下图所示:
CDialogBar中按钮为灰色不可用的解决办法
寻思半天都不得其解,后来搜索了下相关问题,结果这个的确是一个问题。具体是怎么样的,我也没有去深究,总之想找到一个简单的解决办法。
原来只需要重载CDialogBar::OnUpdateCmdUI这个方法就可以了,代码如下:

CDialogBar中按钮为灰色不可用的解决办法void CToolBarDlg::OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHandler)
CDialogBar中按钮为灰色不可用的解决办法{
CDialogBar中按钮为灰色不可用的解决办法    bDisableIfNoHandler = FALSE;
CDialogBar中按钮为灰色不可用的解决办法    CDialogBar::OnUpdateCmdUI(pTarget, FALSE);
CDialogBar中按钮为灰色不可用的解决办法}


CDialogBar中按钮为灰色不可用的解决办法
如上图所示,已经不是灰色的了,添加了一个事件处理程序,放了一个MessageBox进去,可以响应了。

 

我的编译环境是:VS2005+SP1。

上一篇:黑帽大会:有150种方法可绕过Web应用防火墙!


下一篇:php 后台权限例子 (mysql 数据表)