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

CDialogBar按钮enablewindow无效的问题,大家帮忙看看
在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;
}



------解决方案--------------------
记忆中已声明为Bar是不能直接使用控件方法改变可用状态.怎么禁用.....
------解决方案--------------------
注意刷新一下了。。。。。。
------解决方案--------------------
BEGIN_MESSAGE_MAP(类名, 基类名) 
ON_UPDATE_COMMAND_UI(按钮ID, &类名::响应函数名) 
END_MESSAGE_MAP() 

void 类名::响应函数名(CCmdUI *pCmdUI) 

pCmdUI->Enable(FALSE); 


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



------解决方案--------------------
这个直接使用ON_UPDATE_COMMANDUI就行了,俺习惯就写一个函数,把状态不变的都映射到这一个里面,里面就一句话,pCmdUI->Eanble( TRUE );