派生 CRichEditCtrl クラスで矢印キーをキャプチャする方法はありますか? すべてのキーを要求し、OnGetCode() および OnChar() コマンドをキャプチャします。
UINT MyRichEditCtrl::OnGetDlgCode()
{
return CRichEditCtrl::OnGetDlgCode() | DLGC_WANTALLKEYS;
}
と
void MyRichEditCtrl::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CRichEditCtrl::OnKeyDown(nChar, nRepCnt, nFlags);
...
}
そして、メッセージマップでそれらを一致させます..
BEGIN_MESSAGE_MAP(MyRichEditCtrl, CRichEditCtrl)
ON_WM_CHAR()
ON_WM_GETDLGCODE()
END_MESSAGE_MAP()
ほとんどのキーを取得していますが、矢印キーはありません。OnKeyDown および OnKeyUp イベントでも同じ結果が得られます。矢印キーを取得する別の方法はありますか?
具体的には、現在のカーソル位置の文字が括弧かどうかを知りたいです。ユーザーは、文字を入力するか、編集コントロール内のどこかをマウスでクリックするか、矢印キーでカーソル位置を移動することで、カーソル位置を変更できます。矢印キーを検出できれば、カーソルが括弧内にあるかどうかを判断できると考えています。