Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2007, 13:36   #1
Romanbl4
Форумчанин
 
Аватар для Romanbl4
 
Регистрация: 20.06.2007
Сообщений: 144
По умолчанию Как изменить рабочий стол через sendmessage

Хочу изменить ширину ListView рабочего стола через sendmessage. Хендл стола взял, а что дальше делать - не знаю
Romanbl4 вне форума Ответить с цитированием
Старый 18.07.2007, 13:58   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Что значит изменить ширину? Разрешение экрана?
_SERGEYX_ вне форума Ответить с цитированием
Старый 18.07.2007, 14:16   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

На рабочем столе Windows не существует элементов типа TlistView как и любых других элементов Delphi
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 18.07.2007, 14:19   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Квэнди, я тоже не совсем понял, но вот выдержка из ДельфиУорлд...

Рабочий стол перекрыт сверху компонентом ListView. Вам просто необходимо взять хэндл этого органа управления. Пример:
Код:
function GetDesktopListViewHandle: THandle;
var
  S: string;
begin
  Result := FindWindow('ProgMan', nil);
  Result := GetWindow(Result, GW_CHILD);
  Result := GetWindow(Result, GW_CHILD);
  SetLength(S, 40);
  GetClassName(Result, PChar(S), 39);
  if PChar(S) <> 'SysListView32' then
    Result := 0;
end;
После того, как Вы взяли тот хэндл, Вы можете использовать API этого ListView, определенный в модуле CommCtrl, для того, чтобы манипулировать рабочим столом. Смотрите тему "LVM_xxxx messages" в оперативной справке по Win32.
К примеру, следующая строка кода:
Код:
SendMessage(GetDesktopListViewHandle, LVM_ALIGN, LVA_ALIGNLEFT, 0);
разместит иконки рабочего стола по левой стороне рабочего стола Windows.
_SERGEYX_ вне форума Ответить с цитированием
Старый 18.07.2007, 14:22   #5
Romanbl4
Форумчанин
 
Аватар для Romanbl4
 
Регистрация: 20.06.2007
Сообщений: 144
По умолчанию

может tlistview и нет, но есть сообщения LVM_messages, и я где-то встречал, как на рабочем столе играть со значками-ярлыками.
Изменить хочу не разрешение, а рабочую ширину, на которой располагаются ярлыки, чтобы моя прога-панель не загораживала значки на рабочем столе
Romanbl4 вне форума Ответить с цитированием
Старый 18.07.2007, 14:25   #6
Romanbl4
Форумчанин
 
Аватар для Romanbl4
 
Регистрация: 20.06.2007
Сообщений: 144
По умолчанию

а где можно получить эту справку по Win32 "LVM_xxx messages"? я что-то находил, но там, по-моему было не то, т.к. в списке "сообщений" не нашел LVM_ALIGN
Romanbl4 вне форума Ответить с цитированием
Старый 18.07.2007, 14:35   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

http://msdn2.microsoft.com/en-us/library/ms670560.aspx
http://msdn2.microsoft.com/en-us/lib...c3(VS.80).aspx
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ярлык книги на рабочий стол FoxRiver Microsoft Office Excel 4 28.07.2008 09:24
Рабочий стол masterdela Win Api 3 31.01.2008 19:03
Рабочий стол, рисование D-mon Win Api 7 22.11.2007 18:54
обновление в блоге - Рабочий стол Pblog Обсуждение статей 0 27.05.2007 03:17