Przeźroczyste okno na pulpicie

0

Witam!

Ostatnio zapragnąłem napisać program, który pokazywałby na pulpicie statystyki(głównie tekst) coś na wzór linuksowego conky
http://www.linuxscrew.com/wp-content/uploads/2007/09/conky.jpg

Probowalem wiec zrobić okno WS_EX_TRANSPARENT i za pomocą funkcji TextOut wypisać dany tekst, ale nie dość, że nie widać tekstu, to jeszcze okno podczas ruszania bałagani(przestaje wyswietlać ikony, pasek na dole znika, okna zreszta też).

Czy istnieje jakiś inny sposób aby wyświetlić tylko tekst na pulpicie? Czy można to zrobić bez tworzenia nowego okna i w nim osadzania tych wszystkich elementów?

Dzieki

0

pulpit sam w sobie jest oknem. Może rysuj po nim(?)

0

Czy można to zrobić bez tworzenia nowego okna i w nim osadzania tych wszystkich elementów?

W teorii się da, w praktyce lepiej jest zrobić okno, tzw. "layered", a oknu rodzica ustawić na kontrolkę, która wyświetla pulpit.

http://msdn.microsoft.com/en-us/library/ms997507.aspx

0

Jeśli w Builderze, to forma ma: TransparentColor i TransparentColorValue. Ustawiasz na true i wartość koloru, która jest tłem formy. I tyle.
Jeśli w WinAPI, to o ile pamiętam, obsługujesz WM_ERASEBKGND i nic tam nie rysujesz i zwracasz nie zero.

0

Dziekuje za odpowiedzi. Uzylem stylu "layered" ale jest pewien problem. Ustawilem okno za pomoca SetWindowPos( hWnd, HWND_BOTTOM, ... ) i rzeczywiscie okno sie pojawia na samym dole ale po uzyciu kombinacji "Windows + D" okno znika. Jesli uzyje HWND_TOPMOST program bedzie nachodzil na akutalne okna a ma go byc widac jedynie "nad" pulpitem.

Dzieki

0

Zamiast SetWindowPos użyj SetParent i ustal na kontrolkę wyświetlającą pulpit (w necie jest pełno przykładów jak ją znaleźć).

0

Czyli powinienem dopisać:
*SetParent( hWnd, GetDesktopWindow()); *

Źle czy dobrze i tak nie uzyskuje zamierzonego efektu. Okno pojawia sie nad przeglądarką a jak nacisne Win + D znika.

Dzieki

Poza tym, wydaje mi sie to zbędne skoro tworze okno komendą hWnd = CreateWindowEx(... , HWND_DESKTOP, ...)

0

A spróbuj ustawić dla okna styl DS_CONTROL (jakoś tak się to nazywało - pogoogluj za nazwą bo mi się nie chce) - chodzi o to, że wtedy okno zachowuje się nie jak okno, ale jak kontrolka - wtapia się na stałe w rodzica.

Uważam jednak, że lepiej by było rysować po pulpicie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1