0

次のコードを確認してください。

double rate=GetDlgItemInt(IDC_EDIT1,0,TRUE); double term=GetDlgItemInt(IDC_EDIT2,0,TRUE); double amount=GetDlgItemInt(IDC_EDIT3,0,TRUE); double final;

CString Content(_T("Thanks for using the calculator"));
if (CTaskDialog::IsSupported())
{
CString Heading(_T("Successfully calculated"));
CString Title(_T("Interest Calculator"));
CString Collapsed(_T("Collapsed Info"));
CString Expanded(_T("Expanded Info"));
CString Information(_T("Your information you want to calculate"));
CTaskDialog dia(Content,Heading,Title,TDCBF_OK_BUTTON);

final=amount*pow((1+rate),term);
SetDlgItemInt(IDC_EDIT4,final,FALSE);
dia.SetMainIcon(TD_ERROR_ICON);
dia.DoModal();
}

}

私がやろうとしたことは、ファンドの将来価値を計算する電卓の GUI を作成することです。すべての変数を double として保持したい。しかし、コードの「GetDlgItemInt」の部分は明らかに整数用であり、それを変更して double を取得する方法がわかりません。これで私を助けてください。前もって感謝します。

4

2 に答える 2

1

を返す同等の関数は次のdoubleようになります。

double GetDlgItemDouble(HWND hWnd, UINT uId)
{
    TCHAR tchBuf[80];
    GetDlgItemText(hWnd, uId, tchBuf, 80);
    return _ttof(tchBuf);
}

文字列に数字以外の文字が含まれている場合などに、エラー チェックを追加することができます。

于 2013-11-12T07:06:52.400 に答える
0

これらの値を CTaskDialog メンバーとして保存するほうがよいのではないでしょうか?
(G(S)etDlgItem が何をしたか忘れてすみません)

できるよ

float myFloat = 3.2;

CString text;
text.Format( L"%f", myFloat );

SetDlgItemText( yourID, text );
于 2013-11-12T06:01:35.683 に答える