Native Look
От: Ahela  
Дата: 22.11.12 08:30
Оценка:
Как сделать чтобы приложение написаное с исп. WTL имело нативный вид?
У меня в Win7 выглядит как ранних версиях.
Re: Native Look
От: okman Беларусь https://searchinform.ru/
Дата: 22.11.12 08:54
Оценка: 46 (10) +1
Здравствуйте, okman, Вы писали:

O>Здравствуйте, Ahela, Вы писали:


A>>Как сделать чтобы приложение написаное с исп. WTL имело нативный вид?

A>>У меня в Win7 выглядит как ранних версиях.

Подключить манифест — http://msdn.microsoft.com/en-us/library/windows/desktop/bb773175(v=vs.85).aspx

Это обычный XML-файл, который подключается к exe как ресурс, ид = 1, тип = 24:
// myapp.rc

1 24 "manifest.xml"


Также не забываем про поддержку High DPI:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd464660(v=vs.85).aspx

управление совместимостью:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh848036(v=vs.85).aspx

и то, что на Windows XP некоторые формы манифеста могут вызывать BSOD:
http://support.microsoft.com/kb/921337

Я в результате пришел к примерно такому формату (проверено на всех Windows от XP до 8):
  Скрытый текст
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">    

    <assemblyIdentity
        version="1.0.0.0"
        processorArchitecture="x86"
        name="Company.Product.Component"
        type="win32">
    </assemblyIdentity>
    
    <description>Description</description>
    
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="x86"
                publicKeyToken="6595b64144ccf1df"
                language="*">      
            </assemblyIdentity>
        </dependentAssembly>
    </dependency>

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel
                    level="asInvoker"
                    uiAccess="false">                    
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>

    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
        </application>
    </compatibility>

    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
            <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
        </windowsSettings>
    </application>

</assembly>
Re[2]: Native Look
От: Ahela  
Дата: 22.11.12 09:36
Оценка:
Спасибо, за оперативность и объем информации.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.