Win32 C ++ SetLayeredWindowTtributes является либо полностью непрозрачным, либо полностью прозрачным; Ничто между нимиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Win32 C ++ SetLayeredWindowTtributes является либо полностью непрозрачным, либо полностью прозрачным; Ничто между ними

Сообщение Anonymous »

Итак, у меня есть 2 -е окно, созданное в моей программе, например: < /p>

#define WINDOW_CLASS_NAME "WINCLASSFULL"

WNDCLASSEX winclass;

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}

some function {

HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);

// first fill in the window class stucture

winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_DBLCLKS | CS_OWNDC |
CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc =WndProc;
winclass.cbClsExtra = 0; //reserve data space
winclass.cbWndExtra = 0; //
winclass.hInstance = hInstance; //set instance of application
winclass.hIcon = NULL;
winclass.hCursor = LoadCursor(NULL, IDC_ARROW); //load cursor type
winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); //set background brush
winclass.lpszMenuName = NULL;
winclass.lpszClassName = WINDOW_CLASS_NAME; //set Windows class name
winclass.hIconSm = NULL;

hWnd= CreateWindowEx(WS_EX_LAYERED, // extended style
WINDOW_CLASS_NAME, // class
"Demo", // title
WS_POPUP,
x,y,
width,height,
NULL,
NULL,
hInstance,// instance of this application
NULL))) // extra creation parms

}
< /code>

Теперь моя проблема заключается в том, что я применяю < /p>

, где 255 может быть чем угодно между 1-255 < /p>

SetLayeredWindowAttributes(hWnd,RGB(0,0,0),255,LWA_COLORKEY|LWA_ALPHA)
< /code>

Окно полностью непрозрачное, я ничего не вижу за ним < /p>

Это полностью прозрачно: < /p>

SetLayeredWindowAttributes(hWnd,RGB(0,0,0),0,LWA_COLORKEY|LWA_ALPHA)
< /code>

Как я могу получить < /p>

SetLayeredWindowAttributes(hWnd,RGB(0,0,0),128,LWA_COLORKEY|LWA_ALPHA)
< /code>

для работы - то есть, чтобы я мог частично увидеть свое окно сверху; и частично видит окно за ним. Я проверил документ на MSDN здесь, но я, очевидно, что -то не хватает, обратитесь к библиотеке Microsoft

Подробнее здесь: https://stackoverflow.com/questions/878 ... ransparent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»