現在比較の取得、表示をするには?

[戻る]
正樹(ヒロ) [E-Mail] 2000/11/07(火) 01:44:24
たびたびすいません。
前の質問の続きのような感じなのですが
現在時刻を取得して表示するのはうまくいったのですが
逆にエディットボックスから数値を抜き出して2つを比較したいのですが
どうしたらいいでしょうか?
一度自分なりにやってみたのですが

    int y1,y2,m1,m2,d1,d2 ; 
    CString ms ;

    CEdit* myED1 = (CEdit*)GetDlgItem(IDC_YYY1) ;
    CEdit* myED2 = (CEdit*)GetDlgItem(IDC_MMM1) ;
    CEdit* myED3 = (CEdit*)GetDlgItem(IDC_DDD1) ;
    CEdit* myED4 = (CEdit*)GetDlgItem(IDC_YYY2) ;
    CEdit* myED5 = (CEdit*)GetDlgItem(IDC_MMM2) ;
    CEdit* myED6 = (CEdit*)GetDlgItem(IDC_DDD2) ;
    myED1->GetWindowText(y1) ;
    myED2->GetWindowText(m1) ;
    myED3->GetWindowText(d1) ;
    myED4->GetWindowText(y2) ;
    myED5->GetWindowText(m2) ;
    myED6->GetWindowText(d2) ;
    CTime tm1(y1,m1,d1,0,0,0) ;
    CTime tm2(y2,m2,d2,0,0,0) ;
    CTimeSpan tm ;
    tm = tm1 - tm2 ;
    ms = tm.Format("目標の日まであと%D日です。") ;
    MessageBox(ms) ;

―――――――――――――――
 error C2664: 'void __thiscall CWnd::GetWindowTextA(class CString &) const' : 1 番目の引数を 'int' から 'class CString &' に変換できません。 (新しい機能 ; ヘルプを参照)
        'const' に対してではない参照は 非 lvalue へバインドできません。
―――――――――――――――

というエラーが6箇所出てしまいます。
前回のことと同じようなエラーなので逆の手順を踏めばなんとかなるかとも思ったのですが
int型の場合.Formatができないのでよく分からないです。
みなさま教えてくださいお願いします。

masa 2000/11/07(火) 07:45:35
しろーと考えで申し訳ないのですがwindowからの値の取得を
DDX使ったらどうなのでしょうか
用は、エディットボックスの入力値がintなどで取得できればいいんですよね!

YellowSheep 2000/11/07(火) 14:50:29
CWnd::GetWindowTextはテキストとしてキャプションを
取得する関数です。
引数は格納文字列へのポインタか、CString型の変数となります。

提示されたソースで実現するのであれば、
GetWindowTextで一度作業エリアへ文字を取得し、
整数変換することとなります。

正樹 2000/11/08(水) 04:12:13
>CWnd::GetWindowTextはテキストとしてキャプションを取得する関数です。
masaさんが書いているように数値として値を
取得することはできるんでしょうか?

>整数変換することとなります。
具体的にやり方を教えてもらえませんか?
変換方法がわからないです。
すいません。

masa 2000/11/08(水) 08:17:53
アスキーのINSIDE Visual C++ V4 の 141ぺーじから167ぺーじの
内152から157ぺーじあたり参考になりませんか INSIDE Visual C++ V5
でもほぼ同じようなページのはずです 
V5の方は、例題が増えている分ページ数が違うところにありますが
ページタイトルは「モーダルダイアログとWindows共通コントロール」です

コンパイラの値段にくらべたら、たいした金額の本じゃないのでもし持っていなかったら
これを機会に1冊買ってみたらどうですか

正樹 2000/11/09(木) 00:06:16
[[解決]]
解決できました!!
atoiで数値に変換が可能みたいですね。
ありがとうございました!!

古いスレッドには追加発言できません。