![]() |
ПРозрачные ФОрмы
Прочитал что в W2k добавлена возможность создавать прозрачные формы. Но идентефикаторов нет, нашел их в инете, объявил через define, а теперь другая проблема - компилятор кричит, что функции то которая делает прозрачность нет, хотя библиотеки подключены так как написано в MSDN. Я так понял, что нужно так сказать обновить Visual Studio. А где взять эти обновления, помогите????
|
Avanturist
Речж идёт о фунkции Win32 API - SetLayeredWindowAttributes: Код:
BOOL SetLayeredWindowAttributes( HWND hwnd,Тебе надо включить Windows.h. И не забыть прилинковаться к User32.lib. Так-же установить define версии (в stdafx.h) равным 5. |
Через define я определил константы для этой функции, т.к. их нет в файле ни в winuser.h,windows.h. А функция не определена в winuser.h я открывал файл и запускал поиск, ее прототипа там нет. Насчет линковки, что подразумевается чтобы в сеттингах проекта на закладке ЛИНК в списке была библиотека user32.lib, так она есть. Объясни пожалуйста!!!
|
Avanturist
у меня есть (в winuser.h): ... WINUSERAPI BOOL WINAPI SetLayeredWindowAttributes( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags); #define LWA_COLORKEY 0x00000001 #define LWA_ALPHA 0x00000002 #define ULW_COLORKEY 0x00000001 #define ULW_ALPHA 0x00000002 #define ULW_OPAQUE 0x00000004 #endif /* _WIN32_WINNT >= 0x0500 */ Обрати внимание, _WIN32_WINNT должно быть определено 5 и больше (как я говорил). Я не знаю какая у тебя Visual Studio. Попробуй скачай последий SDK с сайта Microsoft. Установишь его, там будут все последние библиотеки. Сделаешь include на windows.h который будет в этом SDK. |
Все я сам разобрался. Прикол был в том, что в самой lib этой функции не было, а вот в user32.dll была, я взял и через GetProcAddress получил ее адрес и все ок, а константа WIN32_WINNT вообще нафиг не нужны, по крайней мере в WIN2k и ХР запускается и работает без проблем. По моему она нужны если хочешь под 98 запускать функции из w2k API.
Всем спасибо!!! |
Avanturist
кому всем? :biggrin: |
Ну типа, всем кто читал, думал, делал. Хотя если честно я не посмотрел что мы туту в двоем токо были.
|
| Часовой пояс GMT +4, время: 10:39. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.