フォームを常に最背面に表示する
スポンサーリンク
フォームを常に最背面に表示したい場合は、Win32 API に頼ることになります。FindWindow 関数で Program Manager という特別なウィンドウ ハンドルを得て、そのハンドルを SetParent 関数で親ウィンドウのハンドルにすることで再背面を実現します。
まずは、ベタな方法からやってみましょう。初めに、API の宣言をしておく必要があります。
サンプルコード
以下にサンプルコードを示します。
VB6.0 以前
Option Explicit ' FindWindow 関数 Private Declare Function FindWindow Lib "USER32.DLL" Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String _ ) As Long ' SetParent 関数 Private Declare Function SetParent Lib "USER32.DLL" ( _ ByVal hWndChild As Long, _ ByVal hWndNewParent As Long _ ) As Long ' ここから先が使用例になります Private Sub Command1_Click() ' Program Manager のハンドルを取得する Dim hProgramManagerHandle As Long hProgramManagerHandle = FindWindow(vbNullString, "Program Manager") ' 正しく取得できた場合は、Program Manager を親ウィンドウに設定する If hProgramManagerHandle <> 0 Then Call SetParent(Me.hWnd, hProgramManagerHandle) End If End Sub
次に TopMost プロパティに習って、BottomMost プロパティのようなものを作ってみましょう。このプロパティを True に設定すると再背面での表示になり、False に設定すると元に戻るようなイメージになります。
ここから先は保留中...
関連するリファレンス
準備中です。