• ベストアンサー

エディットボックスの改行

MFC ダイアログベースでプログラミングしています。 エディットボックスに改行が入らないのですが何故ですか? 以下のソースで実行すると、「1 2」と表示されます。 m_Display = "1 \x0d\x0a 2"; UpdateData(FALSE); UpdateWindow(); また、 int a; の値をエディットボックスに表示させるにはどうしたらよいですか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドバイス ・エディットボックスのスタイルで複数行にチェックしていますか?  1行入力なら改行を入力しても改行されませんが。  さぁ。確認しましょう。

meeyooyoo
質問者

お礼

まさにその通りでした! 有難うございました。

関連するQ&A

  • 文字列と変数の値をエディットボッスクに表示させたい

    VC++6.0,MFC,ダイアログベースでプログラミングしています。 エディットボックスに文字列と変数の値を表示させたいのですが、その方法が分かりません・・。 コンソールベースの場合の、 int a=1; printf("a = %d",a); で、「a = 1」と出力されるようにしたいです。 今は、 m_Display = "a = %d"; UpdateData(FALSE); UpdateWindow(); というように作っているので、上記と同様にできませんでした。 このような場合どうしたらよいのでしょうか? よろしくお願いします。

  • エディットボックスの改行について

    よろしくお願いいたします。 環境 WIN98 VC++6.0 MFC にて 改行が可能なエディットボックスのデータをテキストファイルに保存すると、エディットボックスと同様に改行されて保存されます。 ファイルからデータを読出し、エディットボックスに表示する場合もちゃんと改行されていて問題ありません。 ここで、エディットボックスが2つあり、それぞれのエディットボックスのデータが2行あったとすると、ファイルには4行保存されます。 次にファイルからデータを読出し、エディットボックスに表示する場合、1個目のエディットボックスのデータが2行と分かっていれば良いのですが、そうでない場合は何行読み出してエディットボックスに表示すれば良いか分かりません。 そこで、1個目のデータを保存する時に、最終行の次の行にendという文字を保存することにしました。 これで、読み出すときはendを目印に必要な行数を読み出せます。 しかしながら、エディットボックスの文字の中にたまたまendが使われるとうまく行きません。 長くなりましたが、このような場合、一般的にはどのようにして対処すれば良いのでしょうか? お分かりの方よろしくお願いいたします。

  • 複数行のエディットボックスで改行入力

    複数行のエディットボックスで改行入力 MFC ダイアログベースで、簡単なテキストエディタを作成しています。 エディットボックスは固定サイズで、縦横スクロール無しにしています。 上記エディットボックスに、改行の無い2行分の文字列を出力すると自動的に折り返され、 2行で表示されるのですが、そのとき、2行目の行頭でEnterキーを押すと、 カーソル位置で改行し、空行が挿入されます。(計3行分の表示となる) 10文字文の幅のエディットボックスにて、 文字列 "12345678901234567890" をエディットボックスに出力 エディットボックスでは下記の用に表示。 1234567890 1234567890 2行目の先頭でEnterキー押下で3行表示となる 1234567890 (空行) 1234567890 実際には、1行目の終わりに改行コードが挿入されているので 空行ではなく、改行された状態の2行表示としたいのですが、 どのようにすれば、よいでしょうか? よろしくお願いします。

  • VC++2010 エディットボックスに値を表示

    現在、VC++2010 MFCでアプリケーションを作成しています。 そこで質問なんですが、 エディットボックスに値(今回はADボードからサンプリングした電圧値)をSetWindowTextや、UpdateData(FALSE);をつかってエディット表示などをしたんですが、これを毎秒表示しようとすると(SetTimer()で毎秒、ADボードで電圧値をサンプリングしエディットボックスに表示)7分後くらいにパソコンがフリーズしてしまいます。どのようにしたらフリーズされないか よろしくお願いします。

  • エディットボックスで改行

    お世話になっております。 VC++でプログラムを組んでおり、下記の要領でエディットボックスに文字を表示しています。 _itoa(inputData[i], receivedChar, 16 );//数値を文字列に変換 SetDlgItemText(argThr1->hWnd, IDC_EDIT2, receivedChar); このとき、エディットボックス内で、任意の位置で改行しながら表示する方法はありますでしょうか? よろしくお願い致します。 表示例 ABC(改行) DEF(改行)

  • 親ウィンドウの領域外でも表示されるエディットボックスについて

    親ウィンドウの領域外でも表示されるエディットボックスについて VisualStudio2005でMFCアプリを作っています。 親ウィンドウに指定したコントロールの領域外でも 表示されるようなエディットボックスを作りたいのですが、方法はありますか? イメージとしては、ダイアログ上にボタンがあって、 そのボタンを押すとエディットコントロールが表示され、入力待ちとなるようなものです。 このエディットには改行を入力させるのですが、改行してウィンドウサイズを大きくしていくと、 ダイアログの下の端でエディットボックスが途切れてしまいます。 ダイアログの下より大きくなっても全体が表示されるようにしたいんです。 このエディットの生成は次のような感じで行っています。 DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN; m_edit.Create(dwStyle, rect, this/*ダイアログ*/, -1); よろしくお願いします。

  • MFCのエディットボックスについて

    WindowsのPCにてMFCを使い、ダイアログボックスを作成しています。 ダイアログボックスの中にエディットボックスを作成したのですが、複数行、改行許可の項目を両者ともチェックしたのにも関わらず、改行してくれません。 表示内容は、以下のループで取得し、 while(m_isize > 0) { BYTE ch = m_Data[m_nPos]; if(isalnum(ch)) { m_Ascii += ch; } else { m_Ascii += " "; } m_Dmy.Format("%02X", ch); m_Dmp +=m_Dmy; m_nPos++; m_isize--; if((m_nPos%16)== 0) { m_Addr.Format("%08X:", m_nPos-16); SetDump(); m_Dmp = " "; m_Ascii =" "; } m_Total+=m_DmpLog; m_Total+= "\r\n"; } m_Total(CString)が取得した値を、エディットボックスで表示します。 しかし何故か、上書きされて、最終的に表示されません。 試しに、m_Total+="\n";だけにしてみると、スペースが空き、改行はされないものの表示されます。 初歩的な質問かとは思いますが、教えていただければと思います。よろしくお願いします。

  • エディットボックス

    VC++、APIでwindowsプログラムを書いています。ダイアログボックスで質問があります。 case WM_INITDIALOG: SetDlgItemText(hDlg, IDC_EDIT1, "0"); return TRUE; で読み取り専用エディットボックス内に初期値を書き case WM_CTLCOLORSTATIC: { HDC hdc = (HDC)wParam ; SetTextColor( hdc, RGB( 255, 255, 255)) ;// 白色 SetBkMode(hdc, TRANSPARENT); // 背景を透過 return (BOOL)(HBRUSH)GetStockObject(NULL_BRUSH) ; } でダイアログボックス内のスタティックテキストと読み取り専用エディットボックスの背景を同時に透過させているのですが、エディットボックス内の文字を void ddd( HWND hDlg, int xxx) { char ttt[100]; sprintf(ttt,"%d",xxx); SetDlgItemText(hDlg, IDC_EDIT1, ttt); return ; } で書き換えると古いテキストが残ったように表示されます(背景に色を指定すれば古いテキストは残らない)。 うまく表示させるにはどういった方法があるでしょうか? ご存知の方、よろしくお願いします。 ちなみにダイアログボックスにはビットマップが貼ってあります。

  • エディットボックスの処理で画面がちらつきます。

    VC++ 6.0 Win32APIにてダイアログベースのプログラムを作成しております。 ダイアログに18個のエディットボックスを配置しておりますが、そのエディットボックスのテキストを SetDlgItemText()を使って全て空欄にすると(第3引数に””を指定)画面がちらつきます。 同ダイアログ内のリストコントロールがダブルクリックされた際のイベントを拾ってエディットボックスクリアの処理を実行しているのですが、ちらつきを抑える手法はありますでしょうか?

  • エディットボックスのフォントを変えたい

    MFCで作ったダイアログ上の他のコントロールはいじらずに、 エディットボックスのフォントだけを大きく変えたいのですが、 行間が変わらない為か、文字の下のほうが切れてしまいます。 色々試してみていますが、どうしても出来ません。 元のダイアログのフォントは12ptです。 OnInitDialog関数内で、 CFont m_font;(メンバ変数)に以下を設定し、 m_font.CreateFont( 20, 0, 0, 0, FW_SEMIBOLD, FALSE, FALSE, 0, SHIFTJIS_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "MS P ゴシック" ); OnCtlColor関数内で、該当エディットボックスの場合だけ pDC->SelectObject( &m_font ); しています。 CreateFontのパラメータが間違っているのでしょうか? それとも、これら関数を呼び出す場所が間違っているのでしょうか? ご回答お待ちしております。