Upgraded MFC application still looks old

2019-01-25 21:05发布

I have an MFC application written with VC6. I have upgraded it to VS2015 and it builds and runs. The application is a main exe with many DLL's that have dialogs in them.

However the application still looks like it is built with VC6. None of the GUI components have the Windows 7 look and feel, they all still look old style.

How can I make my existing application look more modern?

2条回答
Juvenile、少年°
2楼-- · 2019-01-25 21:41

You should at least add this line to your project, for example add to stdafx.h

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

See also Enabling Visual Styles

It gets more complicated for owner draw controls. See this reference: Using Visual Styles with Custom and Owner-Drawn Controls

For ListView and TreeView controls, you can call this function for a more modern look (although it doesn't make any difference in Windows 10)

SetWindowTheme(m_ListView.m_hWnd, L"Explorer", NULL);
SetWindowTheme(m_TreeView.m_hWnd, L"Explorer", NULL);
查看更多
叼着烟拽天下
3楼-- · 2019-01-25 21:47

Also make sure your linker setting ALLOWISOLATION is set to 'Yes' otherwise the manifest is not even considered.

查看更多
登录 后发表回答