現在、フォームのリサイズのときにこれ以上高さを変えないようにするために以下のようなコードを記述しています。
------------------------------
Private Sub MDIForm_Resize()
If Height < 2500 Then
Height = 2500
Exit Sub
End If
End Sub
------------------------------
一応、これで上手くはいっているのですが、実行時、高さを2500以下にしようと動かしたとき、ちらつきというか妙な残像のようなものが出てしまいます。
こんな変な残像が出ずに、VB自身の画面を変えたときのようにピタっと止まるような表示が出来るようにする方法は無いものでしょうか。
ちなみに、開発環境はWin2000、VB6です。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
とーどー兄ぃぃぃ
補足ありがとうですぅぅ
フックについての個人的な理解を勝手に書きます。違ってたら指摘ください。
VBのマウスムーブイベントの起こり方の例(かなり抜粋)
1.ユーザがマウス動かす
2.WINDOWSがマウスの動きを認識
3.WINDOWSがマウスの座標を認識
4.WINDOWSがマウスの位置のウィンドウを認識
5.WINDOWSがマウス位置のウィンドウにマウスが動いたことを通知
(仮にVBで作ったウィンドウだとします)
6.VBがマウスの動きを認識
7.VBがマウスの座標を認識
8.VBがMouseMoveイベントを起こす
というような動きだと思っています。
これは仮にフォームなどであることを前提とした例ですが、実際にはもっともっといろいろな情報がWINDOWSからVBに渡されています。ですので本当はピクチャボックスにもリサイズイベントが起きています。ただVBでそのイベントを発生させていないだけです。
普通のコーディングであれば、VBの起こしたイベントを駆使してプログラミングを行うのですが、フックという作業を行うことにより、もっと幅の広いプログラミングが可能となります。
簡単にいうと、VB任せのイベントではなく、例であげた5番のVBへの通知してきたWINDOWSからのメッセージを全て横取りして、VB機能だけでは認識できないイベントを認識してしまおうと言うことです。
VBではフォームのサイズ変更については、サイズ変更後のイベントしか存在していません。実際サイズ変更についてフォームは
一.サイズ変更開始
二.サイズ変更中
三.サイズ変更中状態解除
四.WINDOWS仕様で定められたサイズ内であるかをチェック
五.サイズがWINDOWS仕様のサイズ外であるときは、ウィンドウの自動リサイズ
六.サイズ変更終了
の通知がされています。
この四の通知イベントを横取りして、仕様サイズを無視しようというものです。
サンプルは
http://www.vbvbvb.com/jp/gtips/index0801.html
の826番目です。その826番目付近のサンプルの機能も合わせ持つと、強力なサイズ調整のカスタマイズが可能となります。
No.4
- 回答日時:
> WM_GETMINMAXINFO
おお!さすがに師匠、行けてます。
http://www.geocities.co.jp/SiliconValley/4805/vb …
>フックって何ですか?
http://www.galliver.co.jp/writing/msdn/msdn06/
No.3
- 回答日時:
最大サイズはフックしてWM_GETMINMAXINFOをキャッチする
MINMAXINFO構造体でトラッキングサイズを読み取り、セットしてあげる
http://www.microsoft.com/japan/msdn/library/defa …
最大サイズならptMaxTrackSizeを再セットしてあげましょう
フックに関して分らなかったら再度質問してください。
一応ここのBBSにフックを利用したサンプルをいくつか載せておりますので、検索してもらったら出てくると思います。
この回答への補足
無知ですみません。フックって何ですか? Googleで調べてみましたが、サンプルが出てくるだけで、フックというものがどういうものなのかは良く分かりませんでした。
補足日時:2002/11/07 17:04No.2
- 回答日時:
フックというものが分からなかったのですが、No5で説明していただき、なんとなくですが理解できました。
こんな方法があるとは……ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ちんこの通常の長さについて
-
中一で勃起時6センチぐらいって...
-
ペニスサイズについて質問です...
-
中3です、ちんこのサイズがMAX...
-
春巻きの皮 ミニサイズの大き...
-
15.6インチのノートパソコンの...
-
A4ラミネーターで小さくカット...
-
A4クリアファイル 1枚、2枚が...
-
契約書の紙のサイズ
-
フォームのリサイズ
-
偽サイズSSD の見分け方につい...
-
みかん箱サイズって具体的にど...
-
キッザニアの紙幣(キッゾ)のサイズ
-
水着のアメリカサイズを日本サ...
-
Tシャツ1200着はダンボール何箱...
-
中学三年生でDカップは大きいで...
-
これは団地間?江戸間??????
-
エクセルを終了したときのウィ...
-
このサイズはB4ですか? 何セン...
-
無印良品の紙袋のサイズを教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ちんこの通常の長さについて
-
中一で勃起時6センチぐらいって...
-
ペニスサイズについて質問です...
-
中3です、ちんこのサイズがMAX...
-
15.6インチのノートパソコンの...
-
偽サイズSSD の見分け方につい...
-
オブジェクトのサイズが勝手に...
-
みかん箱サイズって具体的にど...
-
春巻きの皮 ミニサイズの大き...
-
Tシャツ1200着はダンボール何箱...
-
医療用画像記録フィルムのサイ...
-
スーツケースが壊れたので買い...
-
エクスプローラとプロパティで...
-
キッザニアの紙幣(キッゾ)のサイズ
-
B4サイズは何インチ?
-
ディスク上のサイズとサイズは...
-
エクセルを終了したときのウィ...
-
ボタン電池のL1131と1130 はサ...
-
メールサイズ超過とGmailで送れ...
-
アプリケーションのタイトルバ...
おすすめ情報