Надстройка Office COM, у диалогов нет темы luna / aero (они выглядят как классический внешний вид Windows 98) - PullRequest
1 голос
/ 19 января 2011

У меня есть надстройка для Office 2007, которая добавляет панель инструментов с некоторыми кнопками и обработчиками для их событий OnClick. Когда пользователь нажимает на кнопки, отображаются некоторые диалоги. Но эти диалоговые окна имеют устаревший вид Windows 98 с прямоугольными кнопками, даже в Windows 7.

Я знаю, что вам нужен файл манифеста для включения тем, но это дополнение создается в Visual Studio 2008 и автоматически добавляет манифест, который выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

Что я должен изменить, чтобы мой диалог использовал текущую тему вместо внешнего вида Windows 98? Я читал об осведомленности об изоляции, но, похоже, это тоже не сработало.

1 Ответ

4 голосов
/ 19 января 2011

Как вы обнаружили, добавление манифеста - это только половина битвы.Вам также необходимо вызвать функцию InitCommonControlsEx при инициализации надстройки перед созданием каких-либо элементов управления.Это необходимо для регистрации классов окон для используемых вами общих элементов управления.

И на случай, если вы скептически относитесь к документации, Рэймонд Чен (Microsoft) опубликовал статью в своем блоге .вернемся к решению именно этой проблемы.

Если у вас есть какие-либо другие проблемы, проверьте эту статью: Как применять темы Windows XP к надстройкам Office COM

...