• 締切済み

VC++2005のeditコントロールについて

仕事でVB6.0とFortran77を使っており、今後のためにVC++2005を独学で勉強し始めたのですが、 練習がてらVBでいうTextBoxを使って簡単な計算をしようと思っているんですがうまくいきません。 目標としては2つのeditコントロールに数値をそれぞれ入力し、その2つの数字を足し算するというもの作ろうと思っています。 今のところ、GetWindowText()ってのを使って文字列(CString)を取得することは出来たのですが、 数字(Intなど)を取得することが出来ず、また文字列を整数などに変換する方法もわからない状態です。 MSDNやネットでキーワード検索しても求める情報が見つからず困っております。 どうすればいいのでしょうか?

みんなの回答

  • RoboNeko
  • ベストアンサー率52% (9/17)
回答No.1

VC6.0では下記で変換できます。 C言語の知識ですね。 VC2005でも出来ると思いますが。 //エディットから取得したデータがこの関数に入っていると仮定します CString strEditText; double dTemp; //取得した文字列が既に数字と分かっているものとします。 dTemp = atof(strEditText); //整数に変換。小数なら変換する必要なし int iNum = (int)dTemp;

k314593
質問者

お礼

回答ありがとうございます。 早速試してみます。

関連するQ&A

  • VC++におけるCStringの変換

     VisualC++6.0において、CStringというオブジェクトがありますよね。  たとえば、Edit->GetWindowText(str);  などで、strにEditのさす文字列を入れたりして、そのあとにstrを使って算術演算をするときにどうしてもstrをintかlong型に直したいのです。  キャストの仕方がよくわからないので、知っている方教えてください。よろしくお願いします。

  • C++(VC6)で、CString型を配列へ

    C++(VC6)で、CString型の文字列をCString型の配列へセットする方法を教えてもらえませんか? キーワード検索で、AND検索・OR検索を実現する為に、まずはCString型の文字列をCString型の配列にセットしたいです。 例えば、 □阪神□□□野球□赤松□□ と入力されたCString型の文字列を、 keyword[0] = 阪神 keyword[1] = 野球 keyword[2] = 赤松 と、セットしたいのです。 ※文字列中の"□"は全角空白、または半角空白を表しています。 よろしくお願い致します。

  • VC++でダイアログ(Editボックス)を不可視にしたい

     この質問を見てくださって有難う御座います。 私がお聞きしたいのは、Editボックスの値が空の時、そのEditボックスを非表示にする方法です。  VBの場合ならば、 If テキストボックス = "" Then    テキストボックス.Visible = False End If と書くだけの簡単な事なのですが、VC++だと何を使ったら良いのか、なかなか分かりません。 多分探し方が悪いだけだと思いますが、何冊も本で調べてみたのですが、結局分かりませんでした。 MSDNで調べていたらなんとなく『Show』を使えば出来そうなのですが、この関数の使い方自体が分かりませんでした。  どうかご教授頂けないでしょうか? よろしくお願いします。

  • 【VC++6.0(MFC)】CString型の変数から数字部分を取り出すには?

    いつも大変お世話になっています。 VC初心者です。 現在、VC++6.0(MFC)でコーディングしております。 早速ですが、有識者の方がいらっしゃいましたら ご教授頂きたくお願いします。 ===質問=== CString型変数に以下のような数値を含む文字列から 数値部分だけを取り出すにはどうやってソースを 組めば宜しいでしょうか? ===例01=== CString cs1 = "2009年7月29日"; この文字列から "2009","7","29"を取得したい ===例02=== CString cs2 = "AM10:00:00 -0.4℃"; この文字列から "10","0","0","-0.4"を取得したい 以上、よろしくお願いします。

  • VC++ 文字列のDate型チェック

    こんばんは。 VC++でVBのIsDateのような使い方をする関数 CString または CHar配列などの文字列がDate型かどうか チェックする関数を探しています。 MFCとかにないのでしょうか? 2006/05/26とかのチェックは一文字づつ抜き出して xxx/xx/xxという形はチェックできるのですが うるう年とか考慮すると自作だとかなり複雑なものになってしまいそう なので・・・ どなたかお分かりになる方、よろしくお願いします。

  • c++ CString char* BSTR textbox.text

    c++ 文字列CStringとchar*の変換問題(unicode) _________________________________________________________ Excel   string -> セールの文字列をVC++側に渡すため  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↓ ______________________________________________________________ VC++   char * -> Excelから引数として渡される文字列  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↓ __________________________________________________________ VC++   system::string -> FormのTextBox.Textとしてセット  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↓ ______________________________________________________________ VC++   char * -> FormのDataGridから受け取る文字列  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↓ ______________________________________________________________ VC++   CString -> VC++からExcelに渡すためBSTR前処理  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↓ __________________________________________________________ VC++   BSTR -> VC++からExcelに渡すため  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ↓ __________________________________________________________ Excel   string -> Excelのある処理に使う  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 漢字やひらがなも文字化けないように変換できると思いますが、文字化けしたり変換が困難な状況です。 どうぞよろしくお願いします

  • 文字列の数字を計算したい

    初歩的な質問で申し訳ありませんが お願いします。 VB2005EXPRESSで、 文字列の『1』を整数の『1』に、 文字列の『245』を整数の『245』に 変換する関数を教えていただけますか? TextBox2.Text = (TextBox2.Text) + (TextBox1.Text) 1+1が11になります! 一応、ヘルプで調べ 『strtol 文字列を長整数型 (long) に変換します。』 とあったので、 TextBox2.Text = strtol(TextBox2.Text) + strtol(TextBox1.Text) としたら、 名前strtolが宣言されていません。というエラーが出ました。

  • VC++のプログラミングについて

    VC++(verson2003)でテンプレートはMFCのダイアログベースでアプリケーションを作成しています。以下のプログラムはあるボタンをクリックしたときに呼び出される関数でエディット(コントロール変数m_edit1)に入力されたファイル名の内容(メモ帳に記述したテキスト文)を変数textに格納するものです。このプログラム書き換えてメモ帳に 3 1 4 9 のように記述した数字をint型の一次配列に格納するようにしたいのですがどのようにすればよいでしょうか。 void CprogramDlg::OnBnClickedButton1() { CStdioFile fin; char buf[1001]; CString text,filename; m_edit1.GetWindowText(filename); if (filename == "") return; if(!fin.Open(filename, CFile::modeRead | CFile::typeBinary)) {  AfxMessageBox("読み込みファイルをオープンできません");  return; } text = ""; while (fin.ReadString(buf,1000) != NULL) { text = text + buf; } fin.Close(); }

  • VC++とBC++のちがいについて

    一般的にVC++はとっつき難く、BC++は比較的に容易だと聞きます。 VC++とVBの基本的なことは理解できています。 そこから推測すると、例えばダイアログBOXにテキストBOXを配置したときに、VBだとa=TEXT1で簡単にTEXTBOXに入力された値を取得できますが、VCは、メンバ変数を追加しなければなりません。 BC++の容易さとは、上記のVBのようなことが可能ということかなという風にしか想像できないのですが、実際は同じC++言語であるにもかかわらず、何が容易なのでしょうか? 具体的に説明できる方よろしくお願いいたします。

  • 検索キーワードの強調表示

    C++(VC6)で、ニュース検索ページを作っています。 検索したキーワードが本文にあったときに強調して表示したいと考えています。 CString型の文字列の中の、キーワードがある位置までHTMLで書き出して、キーワードは<B>タグ等で強調表示して、あとは文字列の最後まで繰り返すような方法だと、1個のキーワードにしか対応できないので困っています。 いい方法は無いでしょうか?

専門家に質問してみよう