CDialogBar按钮enablewindow无效的问题,大家帮忙看看

warknife 2008-03-13 09:22:12
在CMainFrame中建一个CDialogBar,并控制其中一个按钮变灰:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;


if (!m_wndDlgBar.Create(this, IDR_MAINFRAME,
CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR))
{
TRACE0("未能创建对话栏\n");
return -1; // 未能创建
}

if (!m_wndReBar.Create(this) ||
!m_wndReBar.AddBar(&m_wndDlgBar))
{
TRACE0("未能创建 Rebar\n");
return -1; // 未能创建
}

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
}

CButton m_btnTest;
m_btnTest.SubclassDlgItem(IDC_TEST,&m_wndDlgBar);
m_btnTest.EnableWindow(false); //这里运行没问题,但是没变灰。

return 0;
}

...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-12-05
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
用户 昵称 2011-11-14
  • 打赏
  • 举报
回复
这个直接使用ON_UPDATE_COMMANDUI就行了,俺习惯就写一个函数,把状态不变的都映射到这一个里面,里面就一句话,pCmdUI->Eanble( TRUE );
panasonic0804 2011-11-14
  • 打赏
  • 举报
回复
BEGIN_MESSAGE_MAP(类名, 基类名)
ON_UPDATE_COMMAND_UI(按钮ID, &类名::响应函数名)
END_MESSAGE_MAP()

void 类名::响应函数名(CCmdUI *pCmdUI)
{
pCmdUI->Enable(FALSE);
}

类定义中添加函数声明:afx_msg void 响应函数名(CCmdUI *pCmdUI);


闪破风浪 2008-03-13
  • 打赏
  • 举报
回复
注意刷新一下了。。。。。。
smallfishff 2008-03-13
  • 打赏
  • 举报
回复
记忆中已声明为Bar是不能直接使用控件方法改变可用状态.怎么禁用.....

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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