- ベストアンサー
Form_Resize以外でフォームサイズの変化を知る方法。
NT4WS+VB6+SP5にて開発しております。 Form_Resizeイベント以外でフォームサイズの変化を知りたいと思っております。 実際Form_MouseUpを使えばわかるだろうと思い試してみたのですが、 Form_MouseUpイベント自体を発生させることが出来ずに断念しました(^^; ご存知の方よろしくお願いしますm(_ _)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
サブクラス化してメッセージをフックすれば出来ます。 http://www.vbvbvb.com/jp/gtips/ の824~840を参照 しかし、Form_Resizeイベントが何故駄目なのでしょうか?
その他の回答 (1)
- todo36
- ベストアンサー率58% (728/1234)
form_resizeでタイマを立てて、マウスボタンが放された時に イベント処理を実行すればいいと思います。 Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Const VK_LBUTTON = &H1 'マウス左ボタン Const VK_RBUTTON = &H2 'マウス右ボタン Private Sub Form_Resize() Timer1.Interval = 100 'タイマを有効 End Sub Private Sub Timer1_Timer() 'マウスのボタンが押されているなら処理を実行しない If (GetKeyState(VK_LBUTTON) And &H8000) Then Exit Sub 'If (GetKeyState(VK_RBUTTON) And &H8000) Then Exit Sub Timer1.Interval = 0 'タイマを無効 'ここにForm_Resizeのイベント処理 Beep End Sub
補足
回答ありがとうございます。 なぜForm_Resizeではだめなのかと言いますと、 Windowsの「ウィンドウ内容を表示したままドラッグする」の設定を 有効にしていると、サイズ変更するたびにForm_Resizeが走ってしまうので それを避けたかったのです。