
エディットボックスで最後の位置に ( が入力されたときに閉じ括弧の ) を出力して () としたいのです
が、下のコードだと ( が入ったときに )( となってしまいます。いろいろ試していますが () と出力
できないので、わかる方よろしくお願いします。
int nStartChar, nEndChar;
CEdit *edit1 = (CEdit *) GetDlgItem(IDC_EDIT1);
if(pMsg->message == WM_CHAR)
if(pMsg->wParam == '(') {
edit1->GetSel(nStartChar, nEndChar);
edit1->SetSel(nStartChar, nEndChar);
edit1->ReplaceSel(")");
}
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
WM_CHARで処理するのはイマイチ正しくないような気がしますが……。
WM_CHARの時点で、対象のウィンドウのテキスト書き換えられた後…だったかなぁ?
で、書き換えられた後だったとしても、掲示のコードだと……
"Test"と入力済みのエディトボックスで、カーソルを途中まで移動してから'('を入力した場合にどうなるんでしょうか?
>エディットボックスで最後の位置に ( が入力されたときに
という条件にはそぐわないと思いますけど。
EN_CHANGEかEN_UPDATEで対処すべき…ではないですかね?
EN_UPDATEかな?
通知されるタイイミングが異なりますのでその辺りは確認してみて下さい。
# 私が作ったプログラムで、入力できる数値の範囲を制限しているプログラムではEN_UPDATEで対処してました。
Wr5 さん回答ありがとうございました。
WM_CHAR では通知されるタイミングが合わないことがわかりま
した。
EN_UPDATE での方法も考えてみます。とりあえずは、下のように
F6 を押したときに () が入るようにしました。
int nStartChar, nEndChar;
CEdit *edit1 = (CEdit *) GetDlgItem(IDC_EDIT1);
if(pMsg->message==WM_KEYDOWN){
if(pMsg->wParam == VK_F6) {
edit1->GetSel(nStartChar, nEndChar);
edit1->SetSel(nStartChar, nEndChar);
edit1->ReplaceSel("()");
edit1->SetSel(nStartChar-1, nEndChar-1);
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース Try Kotlinで readLine()を使うには 1 2023/03/27 21:06
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- JavaScript 【GAS】WEBアプリでハイパーリンクを挿入したい 1 2023/03/12 19:20
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(映画) 映画 「ゆるキャン△」のED 「ミモザ」のMovie Editと通常ではなにが違うのでしょうか? 1 2022/07/24 13:15
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
数字以外が入力されたらエラー...
-
VB.NETで16進数+16進数や16進...
-
java初心者です。入力されたの...
-
scanfでの可変引数
-
エディットボックスでテキスト...
-
enterでループ終了
-
VisualStudio2019のコードアナ...
-
Userformの入力順序をタブオー...
-
Excel VBA Interior.Color
-
Excel VBAで、Application.Inpu...
-
"gets"は危険なのでしょうか?
-
getchar()について 教えてくだ...
-
あるキーを押したら強制終了さ...
-
Eclipseコンソール表示を、リセ...
-
C言語でのカレンダー作成
-
UWSCで変数をキー入力
-
コンソールアプリの入力時に改...
-
コマンドプロンプトからのEOFの...
-
特定の文字が入力されるまで・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
数字以外が入力されたらエラー...
-
Excel VBAで、Application.Inpu...
-
EDITコントロールで入力できる...
-
*をユーザーが入力した数字の数...
-
Linuxプログラミングで、キーボ...
-
Eclipseコンソール表示を、リセ...
-
入力候補を表示させるには・・・?
-
batプログラム上で文字列を入力...
-
UWSCで変数をキー入力
-
VisualStudio2019のコードアナ...
-
小数か整数かを判定する方法
-
scanfが2回使えない・・・?;
-
Linuxで入力待ちなしkeyread関...
-
java初心者です。入力されたの...
-
Delphi初心者 ボタン操作につ...
-
コマンドプロンプトからのEOFの...
-
Eclipseでコマンドラインを入力...
-
Userformの入力順序をタブオー...
おすすめ情報