Wyświetlanie grafiki 2D bez okna, na pierwszym planie w Windows

0

Muszę wyświetlić grafikę (wektorową albo bitmapę) w Windows, bez użycia okna, na pierwszym planie (jak "zawsze na wierzchu"). Coś w rodzaju znaku wodnego (docelowo ma to być półprzezroczyste). Jeszcze nigdy nie wyświetlałem grafiki, więc zacząłem od szukania w Google, ale niestety wszystko, co znalazłem, opisywało tryby okienkowe albo pełnoekranowe. Proszę przynajmniej o nakierowanie, z czego mam skorzystać, żeby osiągnąć taki efekt?

Zależy mi jeszcze na tym, żeby wszystkie zdarzenia myszy "przenikały" przez ten znak wodny, żeby można było korzystać z kontrolek schowanych pod spodem.

0

Możesz użyć GDI, formę daj na przezroczystą bez ramek. Z tego co wiem, jak dasz przezroczystość tej grafiki to automatycznie przy przezroczystości formy, będzie on przenikalny.

0
xeo545x39 napisał(a)

formę daj na przezroczystą bez ramek

Możesz powiedzieć, o który dokładnie styl Ci chodzi? Bo domyślam się, że chodzi o pierwszy parametr CreateWindowEx(), ale jaką mam tam dać wartość? Próbowałem i próbowałem, ale albo całe okno i bazgroły w nim były widoczne, albo jedno i drugie znikało...

0

Trochę czasu minęło od kiedy się takimi rzeczami bawiłem, ale z tego co pamiętam to http://msdn.microsoft.com/en-us/library/windows/desktop/ms633504%28v=vs.85%29.aspx powinno dać radę.

0

Hmm. Zrobiłem tak:
HDC hdcEkran = GetWindowDC(GetDesktopWindow());
Wcześniej mniej więcej to samo dostawałem przy pomocy:
HDC hdcEkran = GetWindowDC(NULL);
W obu przypadkach mogę rysować "na wierzchu" wszystkich okien, ale jeśli coś się zaczyna dziać na obszarze zajętym przez grafikę, to ona jest w tym miejscu nadpisywana. Co mam zrobić, żeby np. przy najechaniu na jakiś przycisk schowany pod spodem nie wyskakiwał on na wierzch, a nadal odbierał zdarzenia myszy?

PS: Przy tworzeniu zwykłego okna w WinAPI mogę podpiąć do niego pętlę obsługującą zdarzenia, czy da się tak zrobić z "oknem" uzyskanym od GetDesktopWindow()? Jeśli tak, to jak? I czy to rozwiąże problem? ;)

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