Помощь - Поиск - Пользователи - Календарь
Полная версия: использование SystemParametersInfo
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
18192123
Объясните пожалуйста, какие параметры нужно передать в SystemParametersInfo, чтоб получить зна-ние параметров SPI_GETICONTITLEWRAP и SPI_GETMOUSETRAILS, и изменить SPI_SETICONTITLEWRAP и SPI_SETMOUSETRAILS ?


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

volvo
Судя по 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
Спасибо!!!) Разобралась!!
18192123
Объясните пожалуйста, за что отвечает параметр SPI_GETMOUSEHOVERHEIGHT? Судя по msdn - высота прямоугольника для курсора...вот только мне не понятно, что здесь имеется ввиду? И как использовать ф-цию SystemParametersInfo с указанным параметром?


SystemParametersInfo(SPI_GETMOUSEHOVERHEIGHT, ?,?, 0);

volvo
Цитата
вот только мне не понятно, что здесь имеется ввиду?
Это называется "прямоугольник нависания". При прохождении мыши над окном (или оконным элементом, не важно) этот элемент получает сообщение 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
Объясните пожалуйста, за что отвечает параметр SPI_GETSERIALKEYS?
volvo
В версиях 9x с его помощью контролировалось использование альтернативных устройств ввода (для людей, у которых есть проблемы с использованием мыши и клавиатуры). В NT-версиях Windows этот параметр уже не поддерживается, рекомендуется настраивать это через Панель Управления...
18192123
О.. даже так..Спасибо за информацию!!!)

Добавлено через 4 мин.
Ещё меня интересует параметр SPI_SETHANDHELD...В msdn ничего не нашла по этому поводу...каково его назначение и как использовать с ним SystemParametersInfo?
volvo
Цитата
как использовать с ним SystemParametersInfo?
Никак... Это внутренний флаг, пользовательские приложения его использовать не должны...

Можно узнать, а зачем тебе все это?
18192123
Цитата(volvo @ 5.10.2008 21:06) *

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

в целях обучения изучаю функции Win32 API)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.