エディットボックスについて色々と質問をさせてもらっている、C++の初心者です。今、悩んでいるのがm_text1にデータ("1","2","3")を入力し、m_text2にm_text1で入力したデータ("1"→"青","2"→"黄","3"→"赤")を文字を表示させます。ここまでは出来たのですが、実行時に入力画面が立上がりデフォルトでm_text1が"1"とし、この時m_text2は"青"が出力、そこでm_text1の値を"2"・"3"に替えた瞬間(例えばm_text1'やm_text1''をマウスクリック時)にm_text2(m_text2'やm_text2'')が"赤"・"黄"にしたいのですが。どうぞよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
>以前にご教示頂いた下記のコーディングを前提に文字を表示させる件です。
全然前提になってないんですが。
>CClientDC myDC(this);
>CmyDialog myDLG;
これはどこから出てきたのですか?
この2行の意味は理解されてますか?
YZ80さんの処理はどこのハンドラに記述されているのですか?
ウィンドウを持つアプリケーションはイベントドリブンです。
いきなり処理だけ抜き出されてもいつどこで行われる
処理なのかがわかりません。
私のサンプルは、
void CMyDialog::OnButton1Click()
というように、どこのイベントで動く処理かというのが
はっきりわかりますよね?
前提にして処理を書かれたというのでしたら、UpdateData()は
どこに行ってしまったんですか?
>また、通信に関してはプログラムを実行時にボード内の
>CPU内をデバッグし、テーブルのアドレスのデータを
>書き替えて"1"のデータなら"青"・"2"なら"黄"という
>イメージです。そこで、プログラムが立上った時に
>テーブルのデータの状態を見て、現状が"1"の時に"青"・
>"2"なら"黄"・"3"なら"赤"とエディットボックスに
>表示させるというイメージです。
そのボードのドライバがあると思うので、ドライバの
使い方を調べてください。
ドライバまでYZ80さんが書かれるというのであれば、
ボードの仕様書とにらめっこしてがんばってください。
大前提なのですが、このアプリケーションは、AppWizardで
・SDI
・MDI
・ダイアログベース
のどれを選択して作られているのでしょう?
>読み出し専用にしたいのすが、m_text3.SetReadOnly(TRUE);
C++は理解されていますか?
クラスとメソッドの関係がわかっていれば、そんな質問の内容には
ならないはずですが。
SetReadOnlyはCEditのメンバ関数です。m_text3がCStringなら
呼べるわけがありません。
>m_text3(テーブルのデータをオペレータが編集する。
>入力値は"1"or"2"or"3"とします。)、
おまけですけど、普通これならラジオボタンにしません?
オペレーションのミスを防ぐという点でもエディットボックスを
使うメリットが無いと思うのですが。
この回答への補足
taka tetsuさんどうもありがとうございました。ようやく動作するようになってまいりました。CEditのメンバ関数を理解してませんでした。本当にありがとうございます。今後ともよろしくお願いします。
補足日時:2004/01/22 22:46いろいろとありがとうございました。Cもやった事もありませんでしたので、いきなりC++で教科書開いて2週間だったもので、ご教示頂く事も正直、理解できていません。あまりプログラミングは向いていない方なので、本当に自信はありませんが、頼る方もいないのでこちらでお世話になろうと思いましたが、今後は少し自分で勉強をしてもう少し、質問らしい質問ができるようになったら、またお世話になります。ありがとうございました。
No.2
- 回答日時:
>ファイルのオープンの仕方と
http://www.google.co.jp/search?num=100&hl=ja&ie= …
ファイルの読み書きは基本ですので自分で探してみましょうね。
>下記のコーディングを添削して頂けませんでしょうか?
>CClientDC myDC(this);
>CmyDialog myDLG;
何をしたいのでしょうか?
どのように文字を表示させたいのでしょうか?
TextOut()等で自分でクライアント領域に描画したいのですか?
エディットボックス等のコントロールに出力したいのですか?
説明不足で添削できません。
あと、次回のファイルオープンというのはいつを指すのですか?
アプリが動いている間に次回のファイルオープンが行われるのですか?次のアプリの起動時のことですか?
正しく説明をお願いします。
>また、最終的は既存ファイルはイーサ経由でボードにある固定アドレスの値を編集したいので、
>合わせて通信方法についてもご教示頂ければ幸甚です。
固定アドレス?etherということはIPアドレスって意味ですか?ボードにあるって何を意味しているのですか?正しく説明してください。
それがわからないの通信方法など説明できません。
この回答への補足
説明不足で申し訳ありません。
以前にご教示頂いた下記のコーディングを前提に文字を表示させる件です。
void CMyDialog::OnButton1Click()
{
UpdateData(TRUE);
if( m_strEdit1 == _T("ON") ) {
m_strEdit2 = _T("1");
}
else if( m_strEdit1 == _T("OFF") ) {
m_strEdit2 = _T("2");
}
UpdateData(FALSE);
}
みたいにすれば、平気かな?
"ON"を"青"・"OFF"を"赤"というような感じです。
また、通信に関してはプログラムを実行時にボード内のCPU内をデバッグし、テーブルのアドレスのデータを書き替えて"1"のデータなら"青"・"2"なら"黄"というイメージです。そこで、プログラムが立上った時にテーブルのデータの状態を見て、現状が"1"の時に"青"・"2"なら"黄"・"3"なら"赤"とエディットボックスに表示させるというイメージです。エディットボックスは現在、m_text1(テーブルの状態を表示"1"。読み出し専用)、m_text2(m_text1の"1"を判定し、"青"を表示させる。)、m_text3(テーブルのデータをオペレータが編集する。入力値は"1"or"2"or"3"とします。)、m_text4(Button1を押下後、m_text3でオペレータが編集したデータを"1"→"青"と表示させる。)、Button1(オペレータがm_text3でデータを編集し、確定する時に押下する。この時にm_text3は読み出し専用にしたいのすが、m_text3.SetReadOnly(TRUE);と書いて見ましたが、コンパイルエラーになってしまいます。)、あとはキャンセルボタンと編集したデータをボードに送信するOKボタンで構成を考えています。説明が下手で申し訳ありません。よろしくお願い致します。
No.1
- 回答日時:
>(例えばm_text1'やm_text1''をマウスクリック時)
って、いくら例でもマウスクリックじゃ文字は変わりませんよね。
MFCでよろしいですか?
エディットボックスのOnChangeのイベントハンドラを
作成します。(メッセージはEN_CHANGEです)
ダイアログの作成時、エディットボックスをダブルクリックしてハンドラを作成してください。
その中でm_text2の値を変更してUpdateDataを呼び出してあげてください。
この回答への補足
ご教示ありがとうございます。
考え方を改めたいと思います。
既存フォルダ内のファイル(c:\tmp\data.txt)を開いて、"1"だったら、"青"をm_text2に出力し、次回ファイルをオープンした時には、"2"もしくは"3"の時に"黄"・"赤"をm_text2に出力するようにしたいと思います。ファイルのオープンの仕方と下記のコーディングを添削して頂けませんでしょうか?
CClientDC myDC(this);
CmyDialog myDLG;
//不明なところc:\tmp\data.txtの中に"1"があれば"青"をm_text2に出力
if( myDLG.m_text1 == _T("1") ) {
myDLG.m_text2 = _T("青");
}
else if( myDLG.m_text1 == _T("2") ) {
myDLG.m_text2 = _T("黄");
}
else if( myDLG.m_text1 == _T("3") ) {
myDLG.m_text2 = _T("赤");
}
また、最終的は既存ファイルはイーサ経由でボードにある固定アドレスの値を編集したいので、合わせて通信方法についてもご教示頂ければ幸甚です。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonについての質問です。 初心者ほやほやなのでお手柔らかにお願いします。 今手引きにそって入 2 2022/09/22 21:56
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) 複数条件のオートフィルタ(VBA) 2 2022/12/09 15:40
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- 物理学 文字説明になってしまうのですがすいません。物理の問題です。 重さWの荷物を吊るす。 重さを吊るしたと 2 2023/07/06 02:40
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
VBAでCSVファイルの特定行を書...
-
VBAで巨大なファイルの途中から...
-
エディットボックスの表示方法...
-
C言語でのファイルのデータ更...
-
openした後、closeしないでプロ...
-
perlで、後ろの行を読んで、前...
-
C言語で特定の行を抽出する方法...
-
バッチファイルの作り方(CSV→...
-
close()で例外が投げられる理由
-
readdir()で得られるファイル・...
-
【PHP】アクセス過多でファ...
-
Data::Dumper;でダンプ後表示し...
-
タブの色を変更する方法
-
ファイル出力をUTF8Nではなくて...
-
python renameについて
-
オープンしたファイルで行の連結
-
行を指定して削除する方法PERL
-
【C++/CLI】ファイルオープンに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCSVファイルを途中行まで...
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルの特定行を書...
-
openした後、closeしないでプロ...
-
ReadLineでの読み出し行を指定する
-
エクセルVBA コードが同じでも...
-
csvファイル改行コードの置換に...
-
Perlの変数に文字数制限(容量...
-
perlにて2つのファイル比較
-
C言語でのファイルのデータ更...
-
JavaでCSVファイルを高速に読む...
-
VB6.0でDB接続する際に切断時の...
-
MATLAB グローバル変数の宣言
-
alarmのタイムアウト後の処理で...
-
DBMとテキストファイルのどちら...
-
perlで、後ろの行を読んで、前...
-
拡張子 ”log” と ” dat” の違い
-
5行おきに5行ずつ抽出するに...
-
テキストデータから指定した1...
おすすめ情報