|
VS2008SP1中使用CMFCButton类,MSDN中说可以设置为系统当前风格,我也跟MSDN的例子New Controls比较过,使用以下代码怎么不能设置为当前风格呢
C/C codevoid CTestDlg::OnBnClickedButton2(){ // TODO: 在此添加控件通知处理程序代码 CMFCButton::EnableWindowsTheming(1); //m_bt1.EnableWindowsTheming(1); RedrawWindow();}
明白了 。原来要设置CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
回复
回答人的补充
你用过BCG就知道,一定要先使用:
C/C code
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
BOOL CSymbolDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: Add extra initialization here
if (NULL == CMFCVisualManager::GetInstance ())
{
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
一个程序只能有一个CMFCVisualManager
void CMFCSkinsApp::SetSkin (int iIndex)
{ // destroy the current visual manager
if (CMFCVisualManager::GetInstance () != NULL)
{
delete CMFCVisualManager::GetInstance ();
}
switch (iIndex)
{
case 0:
CMFCVisualManager::GetInstance (); // create the standard visual manager
break;
case 1:
new CMyVisualManager (); // create the first custom visual manager
break;
case 2:
new CMacStyle (); // create the second custom visual manager
break;
}
// access the manager and set it properly
CMFCVisualManager::GetInstance ()->SetLook2000 ();
CMFCVisualManager::GetInstance ()->RedrawAll ();
}
(责任编辑:admin) |