たびたびすいません。
前の質問の続きのような感じなのですが
現在時刻を取得して表示するのはうまくいったのですが
逆にエディットボックスから数値を抜き出して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ができないのでよく分からないです。
みなさま教えてくださいお願いします。
しろーと考えで申し訳ないのですがwindowからの値の取得を
DDX使ったらどうなのでしょうか
用は、エディットボックスの入力値がintなどで取得できればいいんですよね!
CWnd::GetWindowTextはテキストとしてキャプションを
取得する関数です。
引数は格納文字列へのポインタか、CString型の変数となります。
提示されたソースで実現するのであれば、
GetWindowTextで一度作業エリアへ文字を取得し、
整数変換することとなります。
>CWnd::GetWindowTextはテキストとしてキャプションを取得する関数です。
masaさんが書いているように数値として値を
取得することはできるんでしょうか?
>整数変換することとなります。
具体的にやり方を教えてもらえませんか?
変換方法がわからないです。
すいません。
アスキーのINSIDE Visual C++ V4 の 141ぺーじから167ぺーじの
内152から157ぺーじあたり参考になりませんか INSIDE Visual C++ V5
でもほぼ同じようなページのはずです
V5の方は、例題が増えている分ページ数が違うところにありますが
ページタイトルは「モーダルダイアログとWindows共通コントロール」です
コンパイラの値段にくらべたら、たいした金額の本じゃないのでもし持っていなかったら
これを機会に1冊買ってみたらどうですか
解決できました!!
atoiで数値に変換が可能みたいですね。
ありがとうございました!!