2014-01-20 5 views
2

Я использую DWT из GitHub repository (последней версии) с recomended параметрами здания для Окно:Странного DWT-стиль управление

dmd "myGuiApp.d" -IC:\\D\\dwt\\imp^
-JC:\\D\\dwt\\org.eclipse.swt.win32.win32.x86\\res^
-L+C:\D\dwt\lib\ -L+org.eclipse.swt.win32.win32.x86.lib^
-L+dwt-base.lib -L/SUBSYSTEM:windows:4 

Приложение GUI может работать на Win XP и Win 7, но стиль управления DWT похож на старые версии Windows, например, на Win 98 (без цветового градиента на кнопках со строгими углами). Моя первая идея состояла в том, чтобы сменить параметр SUBSYSTEM на windows:5 или windows:6, но это не помогло. И я не нашел упоминания о подобных проблемах в google.

Так может быть, кто-нибудь знает или догадывается, что я делаю неправильно?

+0

Еще один способ сделать это будет (как было упомянуто в конце [этого] (http://hg.dsource.org/projects/dwt-win/raw-annotate/50ff93cdc412/README.txt) текст), чтобы добавить параметр здания (что-то вроде) '-L/rc: .. \ res \ resource.res'. Файл 'res' можно найти в папке' ... \ dwt \ win-res'. –

ответ

3

Вы, вероятно, нужно манифест для ехе и, возможно, придется вызывать InitCommonControlsEx (я не знаю, если DWT делает это или нет, я никогда не использовал его) http://msdn.microsoft.com/en-us/library/windows/desktop/bb775697%28v=vs.85%29.aspx

манифеста объясняется здесь, наряду с обзором того, как сделать это:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb773175%28v=vs.85%29.aspx

манифеста является XML материал немного вниз на этой странице. Компилятор D не имеет прагмы, чтобы добавить xml прямо, но вы можете скомпилировать его в файл ресурсов или просто назвать XML-файл yourexename.manifest и поместить его в тот же каталог, что и exe.

От ссылки MSDN: «Манифесты написаны в формате XML. Имя файла манифеста приложения - это имя исполняемого файла, за которым следует расширение имени файла .manifest, например MyApp.exe.manifest. sample показывает, что в первом разделе описывается сам манифест. В следующей таблице показаны атрибуты, заданные элементом assemblyIdentity в разделе описания манифеста. "

+0

Спасибо! Ваш совет был действительно полезен. Я просто сделал «MyApp.exe.manifest» рядом с «MyApp.exe» и ** восстановил ** приложение. –

Смежные вопросы