| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Как отключить прозрачность окна Aero через DWM Api |
| Автор: suxxor 10.9.2011, 00:56 |
| В общем знаю как отключить полностью прозрачность ВСЕХ окон через реестр (или в панели управления Windows), но мне нужно отключить прозрачность только для ОДНОГО окна (hWnd), и затем включить обратно! Как это сделать на DWMApi? PS: я делаю скриншот окна, нужно чтоб на скриншоте не была видна прозрачность |
| Автор: Dem_max 10.9.2011, 04:45 |
| одного окна скорее всего не получиться. Ибо до такого изврата мелкомягкие дойти не смогли. Но есть выход ты можешь сам нарисовать окно какое тебе нравиться, и там не будет присутствовать прозрачность. Ну из всего этого далее следует. Ставишь хук на создание окна, который будет ловить создание окна. потом хукаешь оконную процедуру окна у которого нужно отключить прозрачность. Перехватываешь сообщение WM_NCPAINT и рисуешь свою непрозрачную рамку окна. Делаешь скриншот окна. убираешь хук с оконной процедуры. |
| Автор: suxxor 10.9.2011, 10:02 |
| А можно с примером! Перехватывать ЧУЖИЕ оконные процедуры я ещё не умею! |
| Автор: Dem_max 16.9.2011, 14:32 |
| посмотри в сторону DwmSetWindowAttribute() http://msdn.microsoft.com/en-us/library/aa969524(v=vs.85).aspx |