GetLayeredWindowAttributes をWin2kで使うには?

解決


キー  2006-05-26 12:03:27  No: 61947  IP: 192.*.*.*

こんにちは。いつも参考にさせて頂いています。
WindowsXPで利用できるGetLayeredWindowAttributes
とゆーAPIがありますが(下記URL参照)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/getlayeredwindowattributes.asp

このAPIをWindows2000で使う方法は無いでしょうか。
SetLayeredWindowAttributes
のAPIはWin2kでも使えるんですが^^;

編集 削除
 2006-05-26 12:21:13  No: 61948  IP: 192.*.*.*

Minimum operating systems Windows XP
なんだからないでしょ…

編集 削除
キー  2006-05-26 12:30:43  No: 61949  IP: 192.*.*.*

ヘルプにはそうありますし、
User32.dllに当該APIが無いので
これそのものをコールするのは無理ですかね。やはり。

しかし、SetLayer...APIはWin2kでも利用できるので
何か方法があるのかもしれません。

SetLayer...した時の情報をアプリ側で記憶しておくことで
今抱えている問題は回避できるのですが

ウィンドウハンドルを指定して
そのウィンドウの現在の透明度などを取得できないものでしょうか。

編集 削除
キー  2006-05-26 15:16:53  No: 61950  IP: 192.*.*.*

SetLayer...した際の透明度とウィンドウハンドルを対で記憶することで
Windows2000対応としました。
ただ、既に透明化されているウィンドウの
透明度を知る方法は解りませんでした。

編集 削除
lane  2006-08-23 18:38:59  No: 61951  IP: 192.*.*.*

既に透明化されているウィンドウの判定方法
LONG  lOrgStyle = GetWindowLong(m_hWndT, GWL_EXSTYLE);
if ((lOrgStyle & WS_EX_LAYERED) == WS_EX_LAYERED)
{//既に透明化されている
...
}
else
{//透明化
SetWindowLong(m_hWndT, GWL_EXSTYLE, lOrgStyle | WS_EX_LAYERED);
}

編集 削除