入力した文字の判定について

[戻る]
TKT 2004/11/11(木) 11:50:02
はじめまして。

ただいまVCにてテキストエディタを作っていて、例えば

"if(int_i == 1){
    AfxMessageBox("ccc");
    "

と入力して、'}'を入力するとタブがひとつ削除されるような機能(オートタブ機能?)を作成し
たいと考えています。そこで入力した文字を判定して、その文字が'}'のときはタブをひとつ削
除する、というふうに作ろうとしていましたが、これでは'}'と']'の区別がつかないようなの
で困っています。


以下が入力文字判定をテストしたソースです。
MyPad2というワークスペースを作成して、クラスウィザードからWM_KEYDOWNメッセージを使っ
ています。

どなたかアドバイスをよろしくお願いします。



void CMyPad2View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
    switch (nChar){
    case 9:
        AfxMessageBox("aaa");
        break;
    case 13:
        AfxMessageBox("BBB");
        break;
    default:
        AfxMessageBox("ccc");
    }

    CEditView::OnKeyDown(nChar, nRepCnt, nFlags);
}

dairygoods 2004/11/11(木) 11:59:23
OnKeyDownは押された「キー」の判定につかいます。
キーが押された結果入力された「文字」を判別するには、
OnCharを使います。

TKT 2004/11/11(木) 12:48:45
[[解決]]
dairygoods さん、早速ありがとうございます。

OnCharを使ってみたところ、こちらのやりたいことができそうです。

どうもありがとうございました!助かりました。

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