Używam Delphi XE2 i lubię szklane efekty, a ja chcę "wycinać" szkło tak, jak w narzędziach tabletu Windows 7. Jeśli wiesz, jak przyciąć przycisk, będę szczęśliwy, jeśli powiesz mi, jak to zrobić.Delphi do cięcia szkła
Dzięki
Używam Delphi XE2 i lubię szklane efekty, a ja chcę "wycinać" szkło tak, jak w narzędziach tabletu Windows 7. Jeśli wiesz, jak przyciąć przycisk, będę szczęśliwy, jeśli powiesz mi, jak to zrobić.Delphi do cięcia szkła
Dzięki
rysunek w górnym obszarze jest po prostu kwestia zastosowania ramy szkła i malarstwa w obszarze non-klient, lub alternatywnie, używając API DwmExtendFrameIntoClientArea.
Najlepszym przykładem kodu, jaki widziałem, jest kontrolka "Wstążka" VCL, która zapewnia obszar "QAT" (pasek szybkiego dostępu), pomalowany w "obszarze innym niż klient".
Należy pamiętać, że autor musi myśleć nie tylko o tym, jak renderować systemy Vista/Win7 z włączonym szkłem, ale także musi decydować, jak renderować na WinXp, Win7 i Vista, gdy silnik Motywów jest wyłączony. Logika jest całkiem spora w jednostce Vcl.Ribbon.pas
(lub po prostu Ribbon.pas, jeśli jesteś w XE lub wcześniejszej) dedykowanej temu jednostce.
Spójrz na procedure TCustomRibbonQuickAccessPopupToolbar.NCPaint(DC: HDC);
w źródłach wstążek Vcl.
Rysowanie nieprostokątnego "obszaru rozszerzonego", który wystaje z dołu, jest prawdopodobnie kwestią zastosowania niestandardowego obszaru przycinania okien.
Ale wtedy musiałbyś sam narysować świecącą krawędź, nieprawdaż? A jeśli tak, pytanie brzmi, w jaki sposób? – TLama
Nie, jeśli podążacie za nowoczesnymi technikami. Wierzę, że odpowiedź dave'a łączy cię z tą częścią, zobacz komentarze na temat SetWindowRgn i przezroczystych wartości kolorów: http: // stackoverflow.com/questions/3572342/irregular-shaped-forms –
Dowolny przykład wyjaśniłby więcej niż tysiąc słów. Przepraszam, jestem w tym kiepski i nie mam pojęcia, jak to zrobić. Masz zamiar użyć ['UpdateLayeredWindow'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms633556%28v=vs.85%29.aspx)? Czy to naprawdę wystarczy? – TLama
Czy masz na myśli, że chcesz formy w kształcie? Jeśli tak
może pomóc. Wyobrażam sobie, że będzie działać na Windows 7 (uwaga Remy w komentarzu).
hth
Tak, @Lama, to właśnie chcę zrobić. Czy wiesz jak? – Astervista
@Astervista, nie, ale spróbuję to znaleźć, ponieważ jest to interesujące pytanie i jest już w moich ulubionych :) OT, ['here's'] (http://weblogs.asp.net/kennykerr/archive/2006/ 08/10/Windows-Vista-for-Developers-_1320_-Part-3-_1320_-The-Desktop-Window-Manager.aspx) ciekawa lektura dotycząca Desktop Window Managera i niektórych jego funkcji, ale nie sądzę, że istnieje odpowiedź na twoje pytanie tam (dlatego OT :) – TLama
Dzięki, @TLama. – Astervista