Potrzebuję utworzyć okno bez ramki z określonym kolorem tła. Wiem jak usunąć non obszar roboczy i dostać coś takiego:Okno bez obramowania. Jak dodać cień i usunąć obramowanie 1px?
Fajnie, ale nie naprawdę to, co chcę. Jeśli przyjrzysz się bliżej każdemu oknu aero - wokół niego jest cień (w rzeczywistości to nie cień, ale blask). Znalazłem gdzieś, że mogę użyć tego kodu, aby dodać cień:
const MARGINS shadow_on = { 1, 1, 1, 1 };
DwmExtendFrameIntoClientArea(hwnd, &shadow_on);
To prawie zrobić to zadanie (pomyślałem, że to nie jest absolutnie dla mnie jasne - dokumentacja nie mówi nic na temat relacji z cienia i tej funkcji). Prawie. Wokół okna pojawiło się cienkie obramowanie. Wygląda na to, że to półprzezroczysta i łamie wygląd okna:
wiem, że jest to możliwe - w visual studio nawet zmienić kolor tej granicy jakoś!
Aktualizacja: jako IInspectable zauważony w komentarzach mogę używać ujemnych marginesów w DwmExtendFrameIntoClientArea()
. Ustawić wartość -1 i dostał ten wynik:
Jak widać - to jeszcze dziwniejsze. Próbowałem wypełnić tło kolorem, ale bez powodzenia.
można klip powierzchnia okien usunąć blask. Czy próbowałeś już go spiąć, aby usunąć poświatę? Możliwe, że nie można pozbyć się blasku i używać cienia w tym samym czasie. – icbytes
@icbytes nie, nie rozumiesz - potrzebuję blasku - nie potrzebuję granicy, która pojawia się, gdy dodaję poświatę. – nikitablack
Następnie nie używaj wspomnianej funkcji. Narysuj to sam. Jedna linia px ze wszystkich stron, z lekkim zielonym pasemkiem. – icbytes