アプリケーション停止キューをWindowsに送る <TOP>
アプリケーションを停止するキューをWindowsに送ります。
SetLayeredWindowAttributes レイヤード ウィンドウの不透明および透明のカラーキーを設定
GetWindowLong 指定されたウィンドウに関しての情報を取得
SetWindowLong 指定されたウィンドウの属性を変更
PostQuitMessage アプリケーションを停止するキューをWindowsに送る
例では、ウィンドウ(Form)を透過処理し「Quit」ボタンクリックでアプリケーションを停止するキューをWindowsに送ります。(アプリケーションの終了)
'================================================================ '= アプリケーションを停止するキューをWindowsに送る
'= (QuitMessage.bas) '================================================================ #include "Windows.bi" ' レイヤード ウィンドウの不透明および透明のカラーキーを設定 Declare Function Api_SetLayeredWindowAttributes& Lib "user32" Alias "SetLayeredWindowAttributes" (ByVal hWnd&, ByVal crKey&, ByVal bAlpha&, ByVal dwFlags&) ' 指定されたウィンドウに関しての情報を取得。また、拡張ウィンドウメモリから、指定されたオフセットにある32ビット値を取得することもできる Declare Function Api_GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hWnd&, ByVal nIndex&) ' 指定されたウィンドウの属性を変更。また、拡張ウィンドウメモリの指定されたオフセットの32ビット値を書き換えることができる Declare Function Api_SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&) ' アプリケーションを停止するキューをWindowsに送る Declare Sub Api_PostQuitMessage Lib "user32" Alias "PostQuitMessage" (ByVal nExitCode&) #define GWL_EXSTYLE -20 '拡張ウィンドウスタイル #define LWA_ALPHA 2 'bAlphaをアルファー値として使う #define LWA_COLORKEY 1 'crKeyを透明色として使う(dwFlagsの定数) #define WS_EX_LAYERED &H80000 '透明なウィンドウ属性(Windows2000以上) '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var Ret As Long Ret = Api_SetWindowLong(GethWnd, GWL_EXSTYLE, Api_GetWindowLong(GethWnd, GWL_EXSTYLE) Or WS_EX_LAYERED) '透過処理 Ret = Api_SetLayeredWindowAttributes(GethWnd, 0, 180, LWA_ALPHA) End Sub '================================================================ '= アプリケーションを停止するキューをWindowsに送る '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Api_PostQuitMessage(0) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End