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


あみ  2003-03-15 01:51:05  No: 106330

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


名前なし  2003-03-15 02:38:07  No: 106331

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

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

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

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-15 03:16:26  No: 106332

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


たき  2003-03-18 03:09:14  No: 106333

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

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

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


名前なし  2003-03-18 06:22:17  No: 106334

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

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

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


あみ  2003-03-18 20:06:01  No: 106335

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


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

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






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