12.常にフォームを手前に表示させる方法



< 使用用途 >
フォームを常に表示させる事が出来きます。

今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード・・・ 下に書いてあるサンプルソースと同じです


< 説明 >
API関数のSetWindowPosを使用します。
サンプルではコマンドボタンを押したときにフォームが常に表示される、表示されない(元の状態)処理です。

SetWindowPos=>Windowの位置やサイズ、表示を設定するAPI関数です
  <引数>
    hWnd         :ウィンドウのハンドル
    hWndInsertAfter  :「手前にセット」、「後ろにセット」、「解除」等の処理をいれる変数
    X           :新しいX座標
    Y           :新しいY座標
     cx          :新しいウィンドウの幅
    cy           :新しいウィンドウの高さ
    wFlags        :「表示する」、「位置を設定しない」、「サイズを設定しない」をいれる変数

  @戻り値@  
    1で成功、失敗で0


< SAMPLE >
'標準モジュールに宣言して下さいr
Public Declare Function SetWindowPos Lib "user32"(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
    ByVal X As Long, ByVal Y As Long, _
     ByVal cx As Long, ByVal cy As Long, _
    ByVal wFlags As Long) As Long

’手前に表示するかしないかのフラグ
Public SHOKITI As Integer
’hWndInsertAfter の設定
Public Const TEMAE_SET = 0       '手前にセット
Public Const USIRO_SET = 1        '後ろにセット
Public Const TUNENI_TEMAE_SET = -1 '常に手前にセット
Public Const KAIJYO = -2         '解除
’wFlags の設定
Public Const HYOUZI_SURU = &H40   '表示する
Public Const NO_SIZE = &H1        'サイズを設定しない
Public Const NO_MOVE = &H2       '位置を設定しない

'コマンドボタンの処理
Private Sub Command1_Click()
FORMHANDORUはウィンドウハンドルを入れる変数です
Dim FORMHANDORU As Long
  ’ウィンドウハンドルの取得
  FORMHANDORU = Form1.hwnd

  If SHOKITI = 0 Then
   '「常に手前に表示」を解除
   MODORITI = SetWindowPos(FORMHANDORU, KAIJYO, 0, 0, 0,0, HYOUZI_SURU Or NO_MOVE Or NO_SIZE)
   SHOKITI = 1
   Command1.Caption = "「常に手前に表示」する"
   Form1.Caption = "現在は「ノーマル」状態です"
  ElseIf SHOKITI = 1 Then
    '「常に手前に表示」をセット
    MODORITI = SetWindowPos(FORMHANDORU, TUNENI_TEMAE_SET, 0, 0, 0, 0, HYOUZI_SURU Or NO_MOVE Or NO_SIZE)
    SHOKITI = 0
    Command1.Caption = "「常に手前に表示を解除」する"
    Form1.Caption = "現在は「常に手前に表示」状態です"
   End If
 
End Sub

'フォームのロード時の処理
Private Sub Form_Load()
  '初期設定(フラグ)
   SHOKITI = 1
End Sub





align="center">API 技術関連のページへ戻る

ホーム PV ランキング