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

わんくま同盟

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

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


(過去ログ 72 を表示中)
■41743 / )  コントロールのフォーカスセットメッセージの取得について
□投稿者/ プリ太 (74回)-(2009/09/29(Tue) 20:39:57)

分類:[C#] 

いつもお世話になっております。
プリ太です。

コントロールに読み取り専用モードを追加したいので、コントロールを継承し、WndProcをoverrideして、
フォーカスを抜けようとしています。

RadioButton、TextBox、CheckBox、DataGridViewは抜けることができたのですが、
DomainUpDownとComboBoxがフォーカスを抜けることができません。
WndProcは以下のようにしています。
protected override void WndProc(ref Message m)
{
const int WM_PASTE = 0x0302;
const int WM_LBUTTONDOWN = 0x201;
const int WM_RBUTTONDOWN = 0x204;
const int WM_MBUTTONDOWN = 0x207;
const int WM_LBUTTONDBLCLK = 0x203;
const int WM_MBUTTONDBLCLK = 0x206;
const int WM_SETFOCUS = 0x0007;

switch (m.Msg)
{
case WM_LBUTTONDOWN:
return;
case WM_RBUTTONDOWN:
return;
case WM_MBUTTONDOWN:
return;
case WM_LBUTTONDBLCLK:
return;
case WM_MBUTTONDBLCLK:
return;
case WM_PASTE:
return;
case WM_SETFOCUS:
return;
}

base.WndProc(ref m);
}

WndProcはRadioButton等と同じなのですが、コントロールを左クリックするとフォーカスがセットされます。
WM_SETFOCUSのreturnにブレイクポイントを設定しても、ブレイクに引っかかりません。

DomainUpDownとComboBoxのフォーカス取得時の値はRadioButton等と違うのでしょうか?
または、DomainUpDownとComboBoxのフォーカス取得の値の取り方が違うのでしょうか?

環境はVS2005です。
宜しくお願いします。

返信 編集キー/


管理者用

- Child Tree -