[開発環境]:Visual C++ 6.0
現在、Visual C++ 6.0を使ったMFCプログラミングの勉強をしています。
基本クラスをCEditViewとしてSDIアプリケーションを
MFC AppWizard (exe)で作成しました。
このテキストエディタにタイマを発行させて、
ある一定の時間が経過した時に編集中のテキストの最後を検索して、
その場所に特定の文字列(例えば"1分経過"等)を表示させたいと考えています。
しかし、編集中テキストの最後を検索する方法と、
その場所へのテキスト設定の方法が分かりません。
ご存じの方、これらについて御教授お願いします。
No.1ベストアンサー
- 回答日時:
「テキストの最後を検索して・・・」とありますがこれは最後の単語でしょうか?それとも最後の位置?
とりあえず、CEditViewはCEditにアクセスできるので
そのメソッドを駆使すればできます。
例えばReplaceSelなど。
そのほかには、GetWindowTextでCStringに文字を取得し
最後に文字列を連結させ、SetWindowTextで設定すると言うのも手かと思います。
ちょっと面倒な場合は、最後の位置で1分経過、2分経過...
と変化させる場合ですね。その場合は設定した位置(先頭からの位置)を覚えておいてそこを更新するのかな。
あーでもユーザーが同じエディットで編集する場合その位置も変わりますね。
そんな場合などを考えると別ウィンドウで経過分数を表示させる方がよいかもしれませんね。
ご回答ありがとうございます。
> 「テキストの最後を検索して・・・」とありますがこれは最後の単語でしょうか?
> それとも最後の位置?
最後の位置です。
> CEditViewはCEditにアクセスできるので
> そのメソッドを駆使すればできます。
> 例えばReplaceSelなど。
ありがとうございます。
ReplaceSelで自分が組込みたいことできました。
質問前にReplaceSelを使えばいいのかなと考えて、
void CTestEditView::OnTimer(UINT nIDEvent)
{
switch(nIDEvent){
case 1:
this->ReplaceSel("\x0d\x0a1分経過\x0d\x0a", FALSE);
KillTimer(1);
break;
case 2:
this->ReplaceSel("\x0d\x0a2分経過\x0d\x0a", FALSE);
KillTimer(2);
break;
}
CEditView::OnTimer(nIDEvent);
}
としてみたのですが、エラーになってしまうためここに質問した次第です。
回答をいただいて、自分のReplaceSelへのアクセスの方法が間違っていることに気付きました。
そこで、以下のように変更しました。
void CTestEditView::OnTimer(UINT nIDEvent)
{
CEdit* myED=(CEdit*)this;
switch(nIDEvent){
case 1:
myED->ReplaceSel("\x0d\x0a1分経過\x0d\x0a", FALSE);
KillTimer(1);
break;
case 2:
myED->ReplaceSel("\x0d\x0a2分経過\x0d\x0a", FALSE);
KillTimer(2);
break;
}
CEditView::OnTimer(nIDEvent);
}
これで、自分が考えている動作をしてくれるようになりました。
困っていたので、たいへん助かりました。
今後もよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
- 簿記検定・漢字検定・秘書検定 簿記検定3級について 最近、簿記の3級の資格を取ろうと思っているのですが、基本の説明+基本問題が1個 1 2022/10/02 12:49
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- Evernote Evernote(エバーノート)の文字化け 1 2022/04/05 19:30
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- フリーソフト libreoffice drawのツールバーのチェックが外れてしまう 1 2022/10/04 22:02
- PDF PDFのテキストを追加機能 1 2022/06/18 12:45
- その他(職業・資格) 色彩検定1級について 2 2022/05/06 16:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスの中身をリセ...
-
別のアプリケーションのテキス...
-
RPG(AS400)の本、サイトってあ...
-
PythonのTkinterイベントについて
-
VBAからPDFのテキストフィールド
-
ドラッグ&ドロップからの取得
-
変数に256文字以上のテキストを...
-
DelphiのRichEditでカーソル位...
-
Access2000 実行時エラー '3061':
-
テキストボックスにセルの値を...
-
漢字入力した値のカタカナ変換...
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
VBScriptでMsgBoxのYesNoボック...
-
YOASOBI
-
【Photoshop】レイヤー効果の境...
-
五芒星は、悪魔崇拝とどういう...
-
VBAユーザーホームテキストボッ...
-
プログラミング、アーキテクチ...
-
PYTHONのtkinterについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
RPG(AS400)の本、サイトってあ...
-
別のアプリケーションのテキス...
-
テキストボックスの中身をリセ...
-
ホームぺージ制作で間違って重...
-
テキストボックスにセルの値を...
-
コモンダイアログのshowopenに...
-
全てのテキストボックスをセル...
-
漢字入力した値のカタカナ変換...
-
変数に256文字以上のテキストを...
-
VB6.0 でメニューを作りたいん...
-
VB.NET2005 DataGridViewでレコ...
-
DelphiのRichEditでカーソル位...
-
VBSでMid関数を使ったらエラー...
-
MFCのスタティックテキストのコ...
-
改行含むテキストの表示の仕方
-
テキストエリア内の文字列にリ...
-
チェックボックスのテキストを...
-
VB.NETで数十行のプログラムを...
-
HTMLのtextbox類に文字を残す
-
VBのチェックボックス
おすすめ情報