Полупрозрачный интерфейс на WinAPI

 
0
 
C++
ava
Aoizora | 18.11.2016, 19:41
Хочу сделать на WinAPI нестандартный интерфейс. Для этого мне нужна полупрозрачность главного окна и контролов, т.е. через интерфейс должен быть частично виден десктоп, но границы контролов должны быть яркими. Как это можно реализовать? Где посмотреть примеры?

И еще: как называется часть интерфейса в виде группирующей рамки вокруг контролов и с названием?
Ответы (5)
ava
Sajtran | 19.11.2016, 20:50 #
имя класса окна BUTTON, стиль BS_GROUPBOX
ava
Sajtran | 19.11.2016, 20:57 #
ещё гугли WS_EX_LAYERED, UpdateLayeredWindow
ava
Aoizora | 21.11.2016, 18:21 #
Да, стиль GROUPBOX уже нагуглил, статью по ссылке выше почитаю.

А есть где-нибудь примеры, как сделать рамку групбокса определенного цвета? Почему-то рисовать ее так же, как кастомную кнопку, не получается.

И еще посоветуйте книги о создании собственного гуя на винапи. В гугле посмотрю, но, может быть, есть какие-то наиболее хорошие книги типа Рихтера по ядру, только про гуй?
ava
миг | 28.12.2016, 18:56 #

#define LWA_ALPHA 0x00000002
#define WS_EX_LAYERED 0x00080000

byLevel=100; //прозрачность
HMODULE hUser=NULL;
teprdef BOOL (WINAPI* PFNSETLAYEREDWINATTR)(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

PFNSETLAYEREDWINATTR pfnSet;
hUser -GetModuleHandle("USER32")
if(hUser==NULL)return;
SetWindowLong(hWnd, GWL_EXSTYLE,WS_EX_LAYERED);
pfnSet=(PFNSETLAYEREDWINATTR) GetProcAddress(hUser,"SetLayeredWindowAttributes");
if(pfnSetLayerWindowAttributes != NULL)
pfnSet(hWnd, NULL, byLevel, LWA_ALPHA)

примерно так.
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить