Не удается нарисовать элемент управления SysListView32 на Win 7? - PullRequest
1 голос
/ 14 апреля 2011

Я пытаюсь нарисовать анимацию на рабочем столе (полярные часы - моя конечная цель), но мне не удается нарисовать на рабочем столе.

Я могу взять ручку иDC для окна с этим кодом:

HWND progMan  = FindWindow("progMan", NULL); 
HWND shellDLL = FindWindowEx(progMan, NULL, "SHELLDLL_DefView", NULL);
HWND sysList  = FindWindowEx(shellDLL, NULL, "SysListView32", NULL);
HDC hdc = GetDC(progMan);

, и я могу использовать этот код для записи текста, который работает при переходе в другие окна или элементы управления:

while(true) TextOut(hdc, 50, 50, "Hello World!", 13);

, но я могуКажется, не удается заставить его работать на элементе управления SysListView32.

Это какая-то особенность Windows 7 или мой код просто прослушивается?

Редактировать: Я хотел бы получить этона работу, но в худшем случае, есть ли у кого-нибудь еще какой-нибудь метод рисования на рабочем столе за значками?

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Замените Progman на WorkerW, и он должен работать в большинстве случаев. Но это еще не все, поэтому ищите подробности в Интернете.

0 голосов
/ 14 апреля 2011

Попробуйте Spy, чтобы получить правильный порядок Windows. Я написал этот код некоторое время назад, не уверен, если он у меня сейчас. Однако Шпион мне очень помог. Хотя эта ссылка не имеет ничего общего с рабочим столом - http://blogs.msdn.com/b/oldnewthing/archive/2004/07/20/188696.aspx, вы также можете получить некоторую помощь от этого.

...