| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
ПРозрачные ФОрмы
Прочитал что в W2k добавлена возможность создавать прозрачные формы. Но идентефикаторов нет, нашел их в инете, объявил через define, а теперь другая проблема - компилятор кричит, что функции то которая делает прозрачность нет, хотя библиотеки подключены так как написано в MSDN. Я так понял, что нужно так сказать обновить Visual Studio. А где взять эти обновления, помогите????
|
|
|
# 2 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Avanturist
Речж идёт о фунkции Win32 API - SetLayeredWindowAttributes: Код:
BOOL SetLayeredWindowAttributes( HWND hwnd,
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags
);
Тебе надо включить Windows.h. И не забыть прилинковаться к User32.lib. Так-же установить define версии (в stdafx.h) равным 5.
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 3 |
|
Guest
Сообщения: n/a
|
Через define я определил константы для этой функции, т.к. их нет в файле ни в winuser.h,windows.h. А функция не определена в winuser.h я открывал файл и запускал поиск, ее прототипа там нет. Насчет линковки, что подразумевается чтобы в сеттингах проекта на закладке ЛИНК в списке была библиотека user32.lib, так она есть. Объясни пожалуйста!!!
|
|
|
# 4 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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.
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|
|
|
# 5 |
|
Guest
Сообщения: n/a
|
Все я сам разобрался. Прикол был в том, что в самой lib этой функции не было, а вот в user32.dll была, я взял и через GetProcAddress получил ее адрес и все ок, а константа WIN32_WINNT вообще нафиг не нужны, по крайней мере в WIN2k и ХР запускается и работает без проблем. По моему она нужны если хочешь под 98 запускать функции из w2k API.
Всем спасибо!!! |
|
|
# 6 |
|
Добрый фей-мод
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Avanturist
кому всем?
__________________
Фотолюбительщина Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью. |
|
|