分割ウィンドウでキーの連動

[戻る]
kayo 2005/03/15(火) 19:22:15
Windows XP 
VC++ 6.0

初心者です。
分割ウィンドウを作り、右の画面(CEditView),左の画面(CEditView)で、
ENTERキーを押した時に、どちらの画面も改行されるようにしたいのですが、
わかりません。
どなたかご教授お願い致します。

dairygoods 2005/03/17(木) 17:02:44
一方のViewで、
void 一方のView::OnChar(...)
{
   if (Enterキー) {
       他方のView->GetEditCtrl().ReplaceSel("\r\n");
   }
   CEditView::OnChar(...);
}

kayo 2005/03/17(木) 18:30:32
dairygoods さん
回答ありがとうございます。
Enterキーの処理ができました。

もう一つだけ質問させて頂けないでしょうか?
BackSpaceキーやDeleteキーなどの時は
Enterキーと同じようにできないのですが、
この場合どうすべきなのでしょうか?

dairygoods 2005/03/17(木) 19:56:18
BackSpaceやDeleteの操作は、“文字入力”ではありませんので、
WM_KEYDOWN(OnKeyDown)で処理する必要があります。

かお 2005/03/18(金) 10:42:01
dairygoods さん
回答ありがとうございます。

WM_KEYDOWN(OnKeyDown)でキーの連動
をすることもできるのでしょうか?

dairygoods 2005/03/18(金) 10:56:16
できませんでしたか?

kayo 2005/03/18(金) 16:10:00
dairygoods さん
回答ありがとうございます。

実現方法が分からなくてまだできていないです。
WM_KEYDOWN(OnKeyDown)の中に下のような処理を入れたいです。
「左の画面(CEditView)でDeleteキーを押すと
 左の画面と右の画面の文字が1文字消える」
この方法が分かりません。
DeleteキーができるとBackSpaceキーやTabキーも
同じようにできると思いました。
教えて頂けないでしょうか?

dairygoods 2005/03/18(金) 17:35:14
一方のViewで、
void 一方のView::OnKeyDown(...)
{
   if (Deleteキー) {
       const MSG* cm = GetCurrentMessage();
       他方のView->PostMessage(cm->message,cm->wParam,cm->lParam);
   }
   CEditView::OnKeyDown(...);
}

#この方法なら、どんなキーでも(Enterでも)使えます。

kayo 2005/03/18(金) 18:52:55
[[解決]]
dairygoods さん
回答ありがとうございます。

dairygoodsさんに教えて頂いた処理通りに
しましたところ、自分の期待通りの動きが
できました。
本当にありがとうございました。

古いスレッドには追加発言できません。