2010-12-03 9 views
0

これは明白なはずですが、私はどこにそれがあるのか​​わかりません。派生コントロール( "MyCEdit")をダイアログまたはプロパティページに配置する方法はありますか?

CEditからMyCEditを派生させたいので、OnCharハンドラをオーバーライドして、編集ボックスへのキーボード入力で便利なことをすることができます。私が持っている各エディットボックスは、(CPropertyPageから派生した)MyCPropertyPageのクライアント領域を塗りつぶし、いくつかのそのようなページは、診断を表示するために使用されるタブコントロールを構成します。編集ボックスを有効にしておき、読み込み専用にしない(美学ではなく、機能ではない)。

リソースエディタ(または他の場所)では、特定のエディットボックスをCEditではなくMyCEditにしたいとVisual Studioに指示する方法はありますか? MyCEditのOnCharをオーバーライドして文字を傍受することもできますし、OnKeyDownもオーバーライドする必要がありますか?このエフェクトの提案を読みましたが、MSソースの記事に理由がありません。

これまでは、私が簡単に無効にできるのはMCPropertyPage :: OnCharですが、バイパスされて文字がそのままエディットボックスの子になります。

答えて

1

私はあなたのページに単純な編集を追加して、コントロール変数を追加し、クラス名フィールドにMyCEditを書く必要があると分かっています。そして、あなたのMCPropertyPageのリソースエディタでparent notifyオプションを設定するのを忘れないでください。

+0

ありがとうございました。私の派生クラスもメッセージマップBEGIN_MESSAGE_MAP(MyCEdit、CEdit)が必要でした。もし私がアルファベット文字のようなものを扱いたいのであれば、OnCharだけで十分でした。 PAGE UP、矢印キーなどを処理するために、私はOnKeyDownハンドラを使用しなければなりませんでした。私は自分のプロパティページで親に通知するためのデフォルトから何も変更しなかった...しかし、 "No Parent Notify"設定はすでに偽であった。私はVS 2005を使用しています。 – omatai

+0

@omatai問題はありません:) –

関連する問題