现在的位置: 首页 > 综合 > 正文

CMFCButton 风格

2013年12月01日 ⁄ 综合 ⁄ 共 1293字 ⁄ 字号 评论关闭
CMFCButton 风格

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

抱歉!评论已关闭.