Текущий архив: 2004.10.24;
Скачать: CL | DM;
ВнизКак отключить поддержку стиля Win XP в своей программе Найти похожие ветки
← →
Apl (2004-09-18 04:16) [0]Если в Win XP(и Win 2003) запущена служба тем, то окна имеют вид резко отличающийся от классического.
Можно ли в таком случае окна моей программы сделать в класическом стиле(Пример : окно электронного словаря из пакета Promt XT выглядит одинаково при любой теме)?
← →
Palladin © (2004-09-18 04:23) [1]Странно... обычно спрашивают как ее включить... а ты уже выключаешь...
← →
Apl (2004-09-18 05:19) [2]а я класику люблю :)
← →
Рамиль © (2004-09-18 10:47) [3]Интересный подход. А мне может классика не нравится. Если пользователь захочет, то отключит темы. Если для себя пишешь - аналогично.
← →
BorH (2004-09-18 15:16) [4]Короче, похоже никто не знает :)..
Впрочем, попробуй выдрать из ресурсов этого твоего Промта ресурс, называемый манифестом. Имеет вид текстового XML файла. Он может находиться и в одной папке с главным экзэшником. И в этом файла, скорее всего, и порыла собака. Засунь его себе в :) ресурсы с таким же названием как и в Промте.
ИМХО.
← →
Kirill © (2004-09-18 16:45) [5]А разве, по-умолчанию, проект создается со стилем темы? К сожалению, проверить сейчас не могу. Создайте пустую форма она уже с видом текущей темы?
← →
BorH (2004-09-18 17:32) [6]Насколько я понимаю есть "насильственные" методы нацепить скин - службы типа StyleXP и WindowsBlinds. Вот против них и можно бороться перенастроеным манифестом. (ИМХО) А без их использования в XP скин насильно не вешается. Проверено.
← →
BorH (2004-09-18 17:33) [7]На Винамп, кстати, скин от этих программ не вешается!! На заметку...
← →
Kirill © (2004-09-18 17:38) [8]У WinAmp"а и подобных программ вообще нету ни caption"а, ни контролов. Только скины и активные регионы формы
← →
Apl (2004-09-19 03:20) [9]to BorH
Впрочем, попробуй выдрать из ресурсов этого твоего Промта ресурс, называемый манифестом. Имеет вид текстового XML файла. Он может находиться и в одной папке с главным экзэшником. И в этом файла, скорее всего, и порыла собака.
нету в каталоге с этим промтом никакого манифеста и в ресурсах тоже... впрочем есть какой - то ресурс с именем 241 содержащий двоичные данные.
to All
Может быть я не правильно выразился, но форма(по умолчанию)создаётся с большим синим заголовком, со скруглёнными краями окон и т.п., вот это-то мне и не нравится.
← →
wicked © (2004-09-19 17:30) [10]отключить темы для окна hwnd:
SetWindowTheme(hwnd, WideString(" "), WideString(" "));
включить темы для окна hwnd:SetWindowTheme(hwnd, nil, nil);
сама функция экспортируется dll"кой UxTheme.dll...
прототип функции на си:
typedef HRESULT __stdcall (*theme_func)(HWND hwnd, LPCWSTR AppName, LPCWSTR SubIdList);
то есть, всё вместе будт выглядеть примерно так (пример на си, влом переводить):
// выносим константой имя длл-ки
#define DLL_NAME "\\UxTheme.dll"
#define BUF_LENGTH MAX_PATH + 16
// имя функции
#define PROC_NAME "SetWindowTheme"
// хендл библиотеки
HMODULE uxt_lib;
typedef HRESULT __stdcall (*theme_func)(HWND hwnd, LPCWSTR AppName, LPCWSTR SubIdList);
// указатель на функцию
theme_func SetWindowTheme;
// запускается при старте программы
// (в паскале поместить этот код в секцию Initialization)
void InitStyles(void)
{
#pragma startup InitStyles
char buf[BUF_LENGTH];
uxt_lib = NULL;
SetWindowTheme = NULL;
memset(buf, 0, sizeof(buf));
if(GetSystemDirectory(buf, sizeof(buf) - 1)){
strcat(buf, DLL_NAME);
uxt_lib = LoadLibrary(buf);
if(uxt_lib) SetWindowTheme = (theme_func)GetProcAddress(uxt_lib, PROC_NAME);
}
}
// запускается при выходе из программы
// (в паскале поместить этот код в секцию Finalization)
void DeInitStyles(void)
{
#pragma exit DeInitStyles
if(uxt_lib){
SetWindowTheme = NULL;
FreeLibrary(uxt_lib);
uxt_lib = NULL;
}
}
// собственно сами функции убирания/восстановления стилей окна
void __fastcall RemoveXPStyle(HWND hwnd)
{
if(SetWindowTheme) SetWindowTheme(hwnd, L" ", L" ");
}
void __fastcall RestoreXPStyle(HWND hwnd)
{
if(SetWindowTheme) SetWindowTheme(hwnd, NULL, NULL);
}
← →
wicked © (2004-09-19 17:32) [11]ЗЫ я дико извиняюсь, но местный скрипт, принимающий данные постинга есть суксь и маздай - так испоганить форматирование моих исходников.... :(
Страницы: 1 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.031 c