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

わんくま同盟

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

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


(過去ログ 136 を表示中)
■79910 / )  Re[2]: カラーパレット任意の座標に表示する
□投稿者/ kazu (3回)-(2016/05/27(Fri) 16:49:09)
No79887 (魔界の仮面弁士 さん) に返信
> ■No79858 (kazu さん) に返信
>>dlg.Position = p;
>   (中略)
>>dlg.Dispose();
>
> ShowDialog 後に、毎回 Dispose しているのは何故ですか?
>
> StripColorBtn_Click で都度都度 new ColorDialogEx() しているのであればともかく、
> もしもデザイン時に貼ったまま使っているのであれば、Dispose してはマズイでしょう。
>
> このクラスに関しては Dispose してもしなくても変わりませんし、
> そのことが本件に影響するかどうかは別問題ですけれども…。
>
>
使用的によくわからず、いろんなサイトを参考にして書いているため、disposeしました。
メソッド内でnewしてない場合はdisposeしない方がいいと言うのをしりませんでした。



>>if (dlg.ShowDialog() == DialogResult.OK)
>>this.StripSelectColorBtn.BackColor = dlg.Color;
>>archPaint._selectColor = dlg.Color;
>
> それだと
>
> if (dlg.ShowDialog() == DialogResult.OK) {
>  this.StripSelectColorBtn.BackColor = dlg.Color;
>  archPaint._selectColor = dlg.Color;
> }
>
> ではなく、
>
> if (dlg.ShowDialog() == DialogResult.OK) {
>  this.StripSelectColorBtn.BackColor = dlg.Color;
> }
> archPaint._selectColor = dlg.Color;
>
> の意味になりますが、本当にそれで良いのですか?
>
>


こちらのロジックは問題ありません。




>
>>GetWindowRect(hWnd, ref r);
> ref ではなく out 引数の方が良いと思います。間違いではありませんけれどね。
>
>
まだrefとoutの違いをきちんと理解していないため、わかりませんがサイトコピペの影響です…
outで書いた場合の書き方も教授していただけると幸いです


>>ステップ実行してみると、
> メッセージ処理を阻害する可能性があるので、この場合のステップ実行は控えましょう。
>
>
>>if (msg == 0x110) 部分でmsg == 0x110がfalseになるため中の処理に入らず、
> その場合の msg は何でしたか?
>

この部分のメソッドが呼ばれるたびにmsgの値は変わっているので、これと言ってひとつではなかったです。
3桁から4桁の数字が入っていました。

>
>>永遠とループしている状態で
> そもそも HookProc は WM_INIDIALOG 専用というわけではなく、
> いろいろな msg 値が幾度も幾度も飛んでくる仕様です。
>
> コメントにも「// WM_INIDIALOG 以外のメッセージに対しては」と書かれていますよね。

よろしくお願いします。
返信 編集キー/


管理者用

- Child Tree -