MDIの子画面にスクロールバーを表示するには?


あみ  2003-03-14 16:51:05  No: 106330  IP: [192.*.*.*]

MDIの子のフォームのサイズを変えた時にスクロールバーを表示させたいのですが、
どのようにしたらできますか?

編集 削除
名前なし  2003-03-14 17:38:07  No: 106331  IP: [192.*.*.*]

# なにがしたいのか、わからん。

子フォームのモジュールに以下のコードを記述して下さい。

子フォームのサイズを変更すると、スクロールバーが表示されます。
# だから、なに?

Option Explicit
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_HSCROLL  As Long = &H100000
Private Const WS_VSCROLL  As Long = &H200000
Private Const GWL_STYLE   As Long = (-16&)
Private Sub Form_Load()
  Dim L As Long
  L = GetWindowLong(Me.hwnd, GWL_STYLE)
  L = L Or WS_HSCROLL
  L = L Or WS_VSCROLL
  L = SetWindowLong(Me.hwnd, GWL_STYLE, L)
End Sub

編集 削除
あみ  2003-03-14 18:16:26  No: 106332  IP: [192.*.*.*]

web画面を表示させたいので、フォームの画面を小さくしてもスクロールバーで
動かしてみれるようにしたいんです。
教えてくださったようにしたんですが、GWL_STYLEが宣言されていませんってなってしまうんですが・・
APIビューアでちゃんといれたのですが・・・
何度もすみません。。。

編集 削除
たき  2003-03-17 18:09:14  No: 106333  IP: [192.*.*.*]

上記のコードをきちんと貼り付けましたか?

Private Const WS_HSCROLL  As Long = &H100000
Private Const WS_VSCROLL  As Long = &H200000
Private Const GWL_STYLE   As Long = (-16&)

この部分があれば、『宣言されていません』というエラーは
出ないはずですが。

編集 削除
名前なし  2003-03-17 21:22:17  No: 106334  IP: [192.*.*.*]

っていうか、
私の挙げたこの方法は止めておいた方が良いのでは?
# 回答した私自身が言うのもなんですが...

何の為にスクロールバーを表示させたいのかが
明記されていなかったので、
単にスクロールバーを表示させる方法を挙げただけで、
この方法で作成するのは困難かと。

それよりは、VScrollBar, HScrollBar コントロールを
使った方が簡単かと思います。

編集 削除
あみ  2003-03-18 11:06:01  No: 106335  IP: [192.*.*.*]

丁寧に返答くださってありがとうございます。
コントロールの方でもやってみます!

編集 削除