WindowStateを最大化にしたフォームでタイトルバーをダブルクリックすると、
画面が移動できるようになってしまいます。
タイトルバーは表示しておきたいので、BorderStyleを「0−なし」にはしたくありません。
ダブルクリックしても画面も移動できないようにする方法はないのでしょうか?
VB6.0+サービスパック5で開発しています。
フォームのMoveAbleプロパティでとめられるかも。
だめだったら…、SetWindowLongでサブクラス化して、
WM_MOVEを隠す…とかでどうでしょうか?
返信ありがとうございます。
MoveAbleはfalseに設定してあったので、だめみたいでした。
SetWindowLongでサブクラス化して、WM_MOVEを隠すという方法が
よく分からなくて・・・。
もしよろしければ教えていただけますか?
サブクラス化については、
vbvbvb.comやらPCDNやらSAK図書館やら
あちこちでサンプルが見つかりますが、
十分に理解してから実行してください。
サンプルが色々見つかりました。
参考にさせてもらったのですが、難しいですねー。
実はやってみたのですがうまくいかなくて、結局
BorderStyleを固定(実線)にしてWindowStateを標準にし、
ソースの中で座標とフォームの大きさをスクリーンサイズにすることになりました。
たかみちえさん、Sayさん、ありがとうございました。
Private Sub Form_Resize()
Me.WindowState = 2
End Sub
こんなんダメですよね・・・。
ぽりさん返事が遅くなって申し訳ありません。
それも話にでたんですが、さすがにビヨ〜ンって感じになるじゃないですか。
だから無理だねーって話になったんです。
ありがとうございました。
いまおもいついたんですけど、
キャプションを空っぽに、ControlBoxをけして、枠だけあるタイトルバーなしのウィンドウを作り、
上にはタイトルバーもどきを作る…でもいいですね。
>キャプションを空っぽに、ControlBoxをけして、
>枠だけあるタイトルバーなしのウィンドウを作り、
>上にはタイトルバーもどきを作る…でもいいですね。
なるほど。そーいうことでもできるんですねー。
私はVBを扱うのは初めてで今回の仕事に入る2週間くらい前に
勉強をして仕事にはいったんです。
まだまだ不勉強な為に効率のいい方法とかどうやったらできるのか
といった事を思いつきにくくて・・・・。
ありがとうございました。では。
ツイート | ![]() |