« BCB6でboost1_32_0でvaridate_generatorあたりでコンパイルエラー | トップページ | DX9のGraphEdit »

2005年3月31日 (木)

BCB6でコントロールのフォーカス移動を無効にする。

BCB6のVCLはコントロールのフォーカス移動を複雑なキーイベント処理によってエミュレートしています。
WindowsのIsDialogMessageを直接使っているわけではないようです。
(Ref:http://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-3.htm)

そのBCB6で矢印キーでのフォーカス移動をやめたい場合は、CM_DIALOGKEYというメッセージを横取りすることでうまくいきます。


class	TForm1 : public TForm
{
	//	:
protected:
	void __fastcall OnDialogKey(Messages::TWMKey &Message)
	{
		if( Message.CharCode != VK_LEFT )
			TForm::Dispatch( &Message );
	}
	BEGIN_MESSAGE_MAP
		MESSAGE_HANDLER( CM_DIALOGKEY, Messages::TWMKey, OnDialogKey );
	END_MESSAGE_MAP(TForm)
};
上のような感じです。他の無効にしたいキーも同じく記述します。

|

« BCB6でboost1_32_0でvaridate_generatorあたりでコンパイルエラー | トップページ | DX9のGraphEdit »

コメント

この記事へのコメントは終了しました。