Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

XP style

13K
09 мая 2006 года
gavrosh
19 / / 09.04.2006
Нужно переделать все элементы проги под xp style. Нашел урок на codeproject.com "Add XP Visual Style Support to OWNERDRAW Controls", скачал исходники, ничего не получилось. Подскажите кто знает, как это работает? Или, может быть, есть совсем другие способы...
354
09 мая 2006 года
ШпиЁн
468 / / 19.02.2006
Цитата:
Originally posted by gavrosh
Нужно переделать все элементы проги под xp style.



Это оно? :)))

13K
10 мая 2006 года
gavrosh
19 / / 09.04.2006
Не очень понятно, у меня в проге кнопки создаются с помощью CreateWindow, а в твоем примере по-другому. Подключать, как я понял, нужно только resource.h?
354
10 мая 2006 года
ШпиЁн
468 / / 19.02.2006
Цитата:
Originally posted by gavrosh
Не очень понятно, у меня в проге кнопки создаются с помощью CreateWindow, а в твоем примере по-другому.



Я использовал обычный редактор диалогового окна. В Visual Studio: Project->Add Resource->Dialog->New. Далее сооружаешь на нём все кнопки и т.д. Это же проще, чем через CreateWindow кнопку создавать)))
В самой проге для простоты я использовал распаковщики сообщений - макросы вида HANDLE_MSG. Мне показалось, что так проще, чем использовать стандартный цикл обработки сообщений. Окно вызывается функцией DialogBox, один из ее параметров - шаблон, который я создал через редактор диалогового окна...

//------------------собственно, как я ЭТО делал-----------
нужно задействовать Common Controls.

для начала:

#include <commctrl.h>

далее можно написать так: #pragma comment(lib, "comctl32.lib")
Я сделал то же самое, только в свойствах проекта: Linker->Input->Additional Dependencies

Далее. В главной функции самой первой строчкой должно идти InitCommonControls();

Теперь надо подключить собственно сам "XP manifest"(где-то я слышал такое название, не знаю, правильно или нет))))

Делаем следующее:
Project->Add Resource->Custom и вводим цифру 24. Теперь надо просто вставить следующий текст в этот ресурс:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="x86"
version="5.1.0.0"
type="win32"
name="test.exe"/>
<description>test Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>


Только нужно кое-что поменять, а именно: name="test.exe" - нужно вставить имя своего проекта(имя .exe) и <description>test Application</description> вместо test впиши своё)))
Теперь сохрани всё и вырубай Visual Studio. Открывай resource.h в блокноте или еще где-нить.... просто так в в VS его редактрировать сложно - VS ругается)))

строчку #define IDR_RT_MANIFEST1 102 перенеси в самое начало файла, и номер (102) измени на 1.
Сохрани resource.h, снеси папки Release и Debug, откомпилируй проект заново и.... чудо произойдет))))

P.S. Не стреляйте в пианиста, он играет как умеет... )))) Прошу прощения за кривой способ, но он работает, а что еще надо для счастья? :-) Тем более, что я начинающий :-)

13K
10 мая 2006 года
gavrosh
19 / / 09.04.2006
Спасибо за столь подробный ответ, я сам еще "начинающе" твоего начинающего. Попробую, если что не получится, напишу. А я уже привык к CreateWindow , надо будет попробовать твоим способом, может действительно легче:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог