C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

VBの勉強


(過去ログ 1 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■205 / inTopicNo.1)  VBの勉強
  
□投稿者/ NOVE 二等兵(1回)-(2005/03/13(Sun) 17:57:36)

分類:[VB6以前] 


分類:[VB6以前] 

現在VBの勉強をしています、
適当に色々な物を作って修行していると問題が出てきました。
フォームのリサイズの制限をする、関数のサンプルにバグがある様なんですが
サンプルにコメントが全くないので、直せません。
サンプルコードにデバッガをかけるとモジュールの一部分のところを何回も
通ってフリーズしたようになります。
何故このようなことが起きるのか教えてくれませんか。

関数サンプルコード
http://www.geocities.co.jp/SiliconValley/4805/vbtips/vbtips116.htm

このバグはフォームのリサイズだけではなく、フォームに作ったボタンを
押したときや、全く関係ないコードにデバッガをしてもモジュールの
関数を通るようになってしまいます
回避方法も教えてくれませんか、

0
引用返信 編集キー/
■206 / inTopicNo.2)  Re[1]: VBの勉強
□投稿者/ 中博俊 伍長(37回)-(2005/03/14(Mon) 10:31:32)
中博俊 さんの Web サイト

分類:[VB6以前] 

こんにちは中です。

なんだかあせっている状況はわかりますが、どうしたいのかぜんぜんわかりません。
どこをデバッグしているのかわかりませんよね?
リサイズに関する処理といっても、それら以外の処理も同じところで処理していればデバッグで止まってしまいますね。

もしあなたが初心者であるならば、人のソースを見てバグだバグだと叫ぶ前にそのソースをあきらめて他のソースを使ってみるとか、そう言う方向のほうが良いでしょう。

とくに、リンク先のソースを拝見しましたがとてもわかりやすいとは言えないですしね。

がんばってください。



0
引用返信 編集キー/
■209 / inTopicNo.3)  Re[1]: VBの勉強
□投稿者/ みゃみゅ玉子 軍曹(19回)-(2005/03/14(Mon) 16:01:17)
みゃみゅ玉子 さんの Web サイト

分類:[VB6以前] 

みゃみゅ玉子です。

No205に返信(NOVEさんの記事)
> サンプルにコメントが全くないので、直せません。
> サンプルコードにデバッガをかけるとモジュールの一部分のところを何回も
> 通ってフリーズしたようになります。
> 何故このようなことが起きるのか教えてくれませんか。

ほんとにコメントが全然無いですね。(^^;
たぶん、ブレークポイントを置く位置をWndProc関数の入口(もしくは出口)にしているから、画面が見えたときにも呼ばれているので、そんな現象が起きているのだと思います。

画面が表示される→ブレークポイントで止まる(画面が切り替わる)→実行すると画面が表示される→ブレークポイントで止まる

> このバグはフォームのリサイズだけではなく、フォームに作ったボタンを
> 押したときや、全く関係ないコードにデバッガをしてもモジュールの
> 関数を通るようになってしまいます
> 回避方法も教えてくれませんか、

この関数は、フォームに送られてるすべてのメッセージを受け取ってしまいます。
なので、uMsgを見て処理をしていますよね。
だからフォームにカーソルが行ったときなんかも通ってしまうのは正常な動きだと思います。



0
引用返信 編集キー/
■210 / inTopicNo.4)  Re[2]: VBの勉強
□投稿者/ NOVE 二等兵(2回)-(2005/03/14(Mon) 16:05:00)

分類:[VB6以前] 

分かりにくい文を読んでくれて、ありがとうございます。
載せたサンプルの使い方はあきらめますが、インターネット上には
私の望んでいるような動作をするサンプルがありません、
前に作ったフォームリサイズ制限は、「指定した最小フォームサイズよりフォーム
が小さくなったら、指定した最小フォームサイズの大きさに戻しましょう」
みたいな事をしたら制限できたのですが、この方法では、
フォームサイズを指定した数値を超えてしまっても、リサイズを続けると
フォームの端っこが、ガタガタ震えだします
フォームが震えないようにするにはどのようなことをすればいいのでしょう。

努力して書きましたが、分かりにくい文章になってしまいます、すみません。

0
引用返信 編集キー/
■213 / inTopicNo.5)  Re[3]: VBの勉強
□投稿者/ みゃみゅ玉子 曹長(20回)-(2005/03/14(Mon) 18:00:09)
みゃみゅ玉子 さんの Web サイト

分類:[VB6以前] 

みゃみゅ玉子です。

No210に返信(NOVEさんの記事)
> 前に作ったフォームリサイズ制限は、「指定した最小フォームサイズよりフォーム
> が小さくなったら、指定した最小フォームサイズの大きさに戻しましょう」
> みたいな事をしたら制限できたのですが、この方法では、
> フォームサイズを指定した数値を超えてしまっても、リサイズを続けると
> フォームの端っこが、ガタガタ震えだします

あ、なるほど。
Resizeイベントだけで制御してるとガタガタいいますね。

> フォームが震えないようにするにはどのようなことをすればいいのでしょう。

・・・あれ?
参考にしているサンプルでうまくいきますよ?
# Publicにする必要が無いやつとかStaticとかは書き直しましたけど

APIのSetWindowLong関数とかCallWindowProc関数を理解してから、このサンプルを使えば問題ないと思います。
わかりやすいサイトは・・・↓VB5ですけど、ここの解説でなんとなく理解した覚えがあります。
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/subc/


0
引用返信 編集キー/
■217 / inTopicNo.6)  Re[4]: VBの勉強
□投稿者/ NOVE 二等兵(3回)-(2005/03/14(Mon) 20:34:09)

分類:[VB6以前] 

返信ありがとうございます。
親切に答えていただいたのに、この様なことを書くのは気が引けるのですが

>参考にしているサンプルでうまくいきますよ?
># Publicにする必要が無いやつとかStaticとかは書き直しましたけど

どのように書き直したか教えていただけませんか、
SetWindowLong関数やCallWindowProc関数を理解するのが思っていたより
辛かったので成功しているのを一度見て参考にしたいのですが、、、
物臭ですみません、もっとVBの勉強がんばります。




0
引用返信 編集キー/
■218 / inTopicNo.7)  Re[5]: VBの勉強
□投稿者/ みゃみゅ玉子 曹長(21回)-(2005/03/14(Mon) 21:01:59)
みゃみゅ玉子 さんの Web サイト

分類:[VB6以前] 

みゃみゅ玉子です。

No217に返信(NOVEさんの記事)
> どのように書き直したか教えていただけませんか、
> SetWindowLong関数やCallWindowProc関数を理解するのが思っていたより
> 辛かったので成功しているのを一度見て参考にしたいのですが、、、

動きに関係するところは直していないので変わらないとは思うのですが、アップしておきます。↓
http://www.hiemalis.org/~myamyu/temp/Module1.bas
※ Formはサンプルと同じでいけます。

SetWindowLong関数やCallWindowProc関数は、通らなくてよいのなら通らないほうがいい道だと思ってます。
終了のしかたを間違えたりすると、VBのIDEごと落ちてしまったりすると思うので。
だから、このやり方を使う前に仕様を変えるなどで回避できないかどうかを考えたほうがいいかもしれませんね。

# そういえば、AddressOfでAPIに関数を渡している場合、その関数にブレークポイントとか置くと確かやばかった気がします。
# 固まるのはそれが原因ですね。たぶん。


0
引用返信 編集キー/
■219 / inTopicNo.8)  Re[6]: VBの勉強
□投稿者/ NOVE 二等兵(4回)-(2005/03/14(Mon) 22:09:51)

分類:[VB6以前] 

返信ありがとうございます!
こんなに親切にして頂いたのはみゃみゅ玉子様が初めてです。
おかげで問題解決しました、今までご苦労様でした。
感謝しています。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -