WinXP стили в Visual Studio 6

Эта статья вас заинтересует если у вас еще не установлена VisualStudion.NET и отсутствует возможность пользоваться стилями WindowsXP. При компиляции созданный вами проект виглядит без изменений и кнопки, как и другие элементы управления даже не похожи на те, что вы видите в WinXP.

Начнем с того, что создание пограмм, которые бы выглядели, как XP программы возможно с минимальной затратой времени, хочу сразу оговориться, эти красочные кнопочки и эдитбоксы будут выглядеть так привлекательно только в самом XP, а в старых версиях Windows они по прежнему останутся такими, как были до этого.

Эти ограничения связанны с новой технологией внедренной в ОС WinXP под названием Visual Styles соответственно Visual Styles API доступно только в XP и выше :). Visual Styles поддерживаются начиная с ComCtl32.dll версии 6 и выше, что и диктует правила использования технологии и написания своих элементов управления, но так-как разработка контролов с использованием Visual Styles это предмет другой статьи, то тут рассматриваться не будет. Ели же вас заинтересует и этот аспект, пишите в коментариях, это и будет доказательством того, что нужно выложить и такую информацию ;).
И так начнем:

Первым делом определимся какая версия Platform SDK у вас имеется, если не ранее, чем июнь 2001 г., то все нужние нам декларации содержатся в файлах описания Visual Styles API :

uxtheme.h - декларации всех API вызовов.

tmschema.h - декларации констант и типов данных дляVisual
Styles
API.

если у вас старая версия SDK или ее совсем нету, не беда, просто задекларируем нужные нам данные сами:

Впишите эти строки в ваш *.rc2 файл

#ifndef RT_MANIFEST
#define RT_MANIFEST 24
#endif
#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#endif

дальше создайте в папке проекта новый файл и дайте ему название “MyProject.exe.manifest”, после чего запихните в него следующий XML текст или код (как вам больше нравится).



name="Microsoft.Windows.test" type="win32"/>
Your app description here


version="6.0.0.0" processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df" language="*"/>


сохраните этот файл и сделайте следующие шаги:

откройте файл Resource.h - и вставте следующую строку:

CREATEPROCESS_MANIFEST_RESOURCE_ID
RT_MANIFEST “MyProject.exe.manifest”

Следующим шагом будет медленное но уверенное нажатие F7 сопровождающееся жужанием винчестера, и exe файл с красочьными кнопками. Не забудте теперь таскать ваш manifest вместе с программой, иначе на XP она загнется и никак не скажется на старых версиях Windows.

rtfm.4hack.com

Июнь 13, 2008 — Рубрика: C++
Метки: , , , , , ,