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