GetLayeredWindowAttributes をWin2kで使うには?

解決


キー  2006-05-26 21:03:27  No: 61947

こんにちは。いつも参考にさせて頂いています。
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 21:21:13  No: 61948

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


キー  2006-05-26 21:30:43  No: 61949

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

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

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

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


キー  2006-05-27 00:16:53  No: 61950

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


lane  2006-08-24 03:38:59  No: 61951

既に透明化されているウィンドウの判定方法
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);
}


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加