powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / SetLayeredWindowAttributes — к каким окнам можно применять?
9 сообщений из 9, страница 1 из 1
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33676847
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С диалогами и property sheets всё получается, а с MDI child frame — нет.
SetLayeredWindowAttributes() возвращает 0, GetLastError() возвращает 87 (invalid parameter).

Никаких указаний в документации по этому поводу не нашёл.
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33677046
KGP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой ВэйС диалогами и property sheets всё получается, а с MDI child frame — нет.
SetLayeredWindowAttributes() возвращает 0, GetLastError() возвращает 87 (invalid parameter).

Никаких указаний в документации по этому поводу не нашёл.

Как HWND hwnd задаешь?
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33677053
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2KGP
CWnd::m_hWnd (такой же, как и для диалога).

А какой надо?
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33677173
KGP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой Вэй 2KGP
CWnd::m_hWnd (такой же, как и для диалога).

А какой надо?

Код в студию
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33678357
Борманнн
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой Вэй 2KGP
CWnd::m_hWnd (такой же, как и для диалога).

А какой надо?
А если GetSafeHwnd() ?
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33679074
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борманнн
А если GetSafeHwnd() ?
Хочу Вас огорчить, GetSafeHwnd() это всего лишь
Код: plaintext
1.
_AFXWIN_INLINE HWND CWnd::GetSafeHwnd() const
	{ return this == NULL ? NULL : m_hWnd; }
, т.е. то же, что делал я (можете поверить, что у меня this != NULL, более того, ::IsWindow(m_hWnd) == true).

KGP
Пока только часть кода, т.к. в ней происходит что-то странное. Это присвоение стиля WS_EX_LAYERED:
Код: plaintext
1.
2.
3.
4.
SetLastError( 0 );
LONG nLong = GetWindowLong(hWnd, GWL_EXSTYLE);
nLong = SetWindowLong(hWnd, GWL_EXSTYLE, nLong | 0x00080000);
DWORD dwE = GetLastError();
nLong = GetWindowLong(hWnd, GWL_EXSTYLE);
GetWindowLong оба раза возвращает 320, SetWindowLong возвращает 0, GetLastError возвращает 0. Странно это как-то...
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33679922
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. SetWindowLong не работает с MDI child , там пример проекта.
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33680141
KGP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой Вэй
KGP
Пока только часть кода, т.к. в ней происходит что-то странное. Это присвоение стиля WS_EX_LAYERED:
Код: plaintext
1.
2.
3.
4.
SetLastError( 0 );
LONG nLong = GetWindowLong(hWnd, GWL_EXSTYLE);
nLong = SetWindowLong(hWnd, GWL_EXSTYLE, nLong | 0x00080000);
DWORD dwE = GetLastError();
nLong = GetWindowLong(hWnd, GWL_EXSTYLE);
GetWindowLong оба раза возвращает 320, SetWindowLong возвращает 0, GetLastError возвращает 0. Странно это как-то...

ModifyStyleEx(0, WS_EX_TRANSPARENT);
и надо его заставить ещё перерисоваться из-за кеша ... например разверни-восстанови

только то ли ты транспаришь?
...
Рейтинг: 0 / 0
SetLayeredWindowAttributes — к каким окнам можно применять?
    #33680328
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос "то ли я транспарю" хороший, пока не знаю. С view-порождённым классом те же проблемы.

А ModifyStyleEx ведёт всё к тому же SetWindowLong...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / SetLayeredWindowAttributes — к каким окнам можно применять?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]