IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> использование SystemParametersInfo, С++ builder6
18192123
сообщение 19.09.2008 18:23
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


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


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

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.09.2008 19:36
Сообщение #2


Гость






Судя по 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
сообщение 19.09.2008 22:56
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Спасибо!!!) Разобралась!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 26.09.2008 18:03
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


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


SystemParametersInfo(SPI_GETMOUSEHOVERHEIGHT, ?,?, 0);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 26.09.2008 18:53
Сообщение #5


Гость






Цитата
вот только мне не понятно, что здесь имеется ввиду?
Это называется "прямоугольник нависания". При прохождении мыши над окном (или оконным элементом, не важно) этот элемент получает сообщение 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 17:44
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Объясните пожалуйста, за что отвечает параметр SPI_GETSERIALKEYS?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.10.2008 18:23
Сообщение #7


Гость






В версиях 9x с его помощью контролировалось использование альтернативных устройств ввода (для людей, у которых есть проблемы с использованием мыши и клавиатуры). В NT-версиях Windows этот параметр уже не поддерживается, рекомендуется настраивать это через Панель Управления...
 К началу страницы 
+ Ответить 
18192123
сообщение 5.10.2008 19:29
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


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

Добавлено через 4 мин.
Ещё меня интересует параметр SPI_SETHANDHELD...В msdn ничего не нашла по этому поводу...каково его назначение и как использовать с ним SystemParametersInfo?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.10.2008 20:06
Сообщение #9


Гость






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

Можно узнать, а зачем тебе все это?
 К началу страницы 
+ Ответить 
18192123
сообщение 5.10.2008 20:12
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


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

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

в целях обучения изучаю функции Win32 API)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 18:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"