Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ использование SystemParametersInfo

Автор: 18192123 19.09.2008 22:23

Объясните пожалуйста, какие параметры нужно передать в SystemParametersInfo, чтоб получить зна-ние параметров SPI_GETICONTITLEWRAP и SPI_GETMOUSETRAILS, и изменить SPI_SETICONTITLEWRAP и SPI_SETMOUSETRAILS ?


SystemParametersInfo(SPI_GETICONTITLEWRAP,?,?,?);
SystemParametersInfo(SPI_GETMOUSETRAILS,?,?,?);
SystemParametersInfo(SPI_SETICONTITLEWRAP,?,?,?);
SystemParametersInfo(SPI_SETMOUSETRAILS,?,?,?);


Автор: volvo 19.09.2008 23:36

Судя по MSDN, должно быть так:

	BOOL res;

SystemParametersInfoA(SPI_GETICONTITLEWRAP, 0, &res, 0);
if(res) {
ShowMessage("Включено");
}
else {
ShowMessage("Отключено");
}

// Меняем параметр
SystemParametersInfoA(SPI_GETICONTITLEWRAP, TRUE, NULL, 0); // Устанавливаем в TRUE

// След мыши:
int trails;
SystemParametersInfoA(SPI_GETMOUSETRAILS, 0, &trails, 0); // Получаем
if(trails < 2) { // Если больше 1, значит установлено
ShowMessage("disabled");
}
else {
ShowMessage("enabled: trails = " + IntToStr(trails));
}
// Чтобы изменить:
SystemParametersInfoA(SPI_SETMOUSETRAILS, 5, NULL, 0);

Попробуй...

Автор: 18192123 20.09.2008 2:56

Спасибо!!!) Разобралась!!

Автор: 18192123 26.09.2008 22:03

Объясните пожалуйста, за что отвечает параметр SPI_GETMOUSEHOVERHEIGHT? Судя по msdn - высота прямоугольника для курсора...вот только мне не понятно, что здесь имеется ввиду? И как использовать ф-цию SystemParametersInfo с указанным параметром?


SystemParametersInfo(SPI_GETMOUSEHOVERHEIGHT, ?,?, 0);


Автор: volvo 26.09.2008 22:53

Цитата
вот только мне не понятно, что здесь имеется ввиду?
Это называется "прямоугольник нависания". При прохождении мыши над окном (или оконным элементом, не важно) этот элемент получает сообщение WM_MOUSEHOVER, если мышь находится над его клиентской областью в течении определенного времени (получить это время можно через SPI_GETMOUSEHOVERTIME). Так вот те 2 параметра, которые тебе непонятны - это максимальное смещение по горизонтали/вертикали, при котором сообщение WM_MOUSEHOVER еще будет получено. Если за время, полученное через SPI_GETMOUSEHOVERTIME, мышь либо по горизонтали либо по вертикали сместится больше, чем задано параметрами SPI_GETMOUSEHOVERWIDTH и SPI_GETMOUSEHOVERHEIGHT, это будет означать, что она перемещается слишком быстро, и не "нависает" над окном, а просто передвигается, и WM_MOUSEHOVER окну не посылается...

Цитата
И как использовать ф-цию SystemParametersInfo с указанным параметром?

Вот так, например:
	int hoverwidth = 0, hoverheight = 0;
SystemParametersInfoA(SPI_GETMOUSEHOVERWIDTH, 0, &hoverwidth, 0);
SystemParametersInfoA(SPI_GETMOUSEHOVERHEIGHT, 0, &hoverheight, 0);

AnsiString s = "";
s.printf("Width = %d, Height = %d", hoverwidth, hoverheight);
ShowMessage(s);


Автор: 18192123 5.10.2008 21:44

Объясните пожалуйста, за что отвечает параметр SPI_GETSERIALKEYS?

Автор: volvo 5.10.2008 22:23

В версиях 9x с его помощью контролировалось использование альтернативных устройств ввода (для людей, у которых есть проблемы с использованием мыши и клавиатуры). В NT-версиях Windows этот параметр уже не поддерживается, рекомендуется настраивать это через Панель Управления...

Автор: 18192123 5.10.2008 23:29

О.. даже так..Спасибо за информацию!!!)

Добавлено через 4 мин.
Ещё меня интересует параметр SPI_SETHANDHELD...В msdn ничего не нашла по этому поводу...каково его назначение и как использовать с ним SystemParametersInfo?

Автор: volvo 6.10.2008 0:06

Цитата
как использовать с ним SystemParametersInfo?
Никак... Это внутренний флаг, пользовательские приложения его использовать не должны...

Можно узнать, а зачем тебе все это?

Автор: 18192123 6.10.2008 0:12

Цитата(volvo @ 5.10.2008 21:06) *

Можно узнать, а зачем тебе все это?

в целях обучения изучаю функции Win32 API)

Автор: how does plaquenil work for auto 22.09.2021 11:12

Viagra Et Cialis Prix

Автор: gabriella 12.04.2022 10:32

Your writings and news are really interesting to me. There are numerous advantages to the contents. Thank you so much. My site:: https://www.chokdeebacarrat.com/ole777/

Автор: nishaknapp 29.07.2022 17:05

Why not settling on games that is fun and at the same time your earning. Well itll make suspense because of the game as well but dude just try it and it gave me hope while pandemic is real rn. https://mydailypapers.com/a-guaranteed-win-in-baccarat-the-formula-you-need-to-know/

Автор: gabriella 1.08.2022 9:38

It seems to me all of them are really brilliant!
https://777-slot.org

Добавлено через 15 мин.
It seems to me all of them are really brilliant!
https://startupwithnicole.com