■79887 / ) |
Re[1]: カラーパレット任意の座標に表示する |
□投稿者/ 魔界の仮面弁士 (727回)-(2016/05/26(Thu) 13:51:43)
|
■No79858 (kazu さん) に返信 > dlg.Position = p; (中略) > dlg.Dispose();
ShowDialog 後に、毎回 Dispose しているのは何故ですか?
StripColorBtn_Click で都度都度 new ColorDialogEx() しているのであればともかく、 もしもデザイン時に貼ったまま使っているのであれば、Dispose してはマズイでしょう。
このクラスに関しては 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 引数の方が良いと思います。間違いではありませんけれどね。
> ステップ実行してみると、 メッセージ処理を阻害する可能性があるので、この場合のステップ実行は控えましょう。
> if (msg == 0x110) 部分でmsg == 0x110がfalseになるため中の処理に入らず、 その場合の msg は何でしたか?
> 永遠とループしている状態で そもそも HookProc は WM_INIDIALOG 専用というわけではなく、 いろいろな msg 値が幾度も幾度も飛んでくる仕様です。
コメントにも「// WM_INIDIALOG 以外のメッセージに対しては」と書かれていますよね。
|
|