首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-01-11 
CDialogBar按钮enablewindow无效的问题,大家帮忙看看在CMainFrame中建一个CDialogBar,并控制其中一个按钮

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 );

热点排行