こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

時刻の日時指定コントロールで実行エラー

時刻の日時指定コントロールで実行エラー

MFCでwindowsアプリケーションを勉強しているものです。
OS : Vista Premium
VS : 2008 Pro

日時指定コントロールで、日付や時刻を選択する参考書サンプルを動かそうとしています。
結果は、
時刻のDate Time Pickerのスピンコントロールを動かすとエラーが表示されます。

添付画像にあるエラー表示内の
'File: f:\dd\vctools\crt_bld\self_x86\crt\src\output.c '
というファイルは、
C:\Program Files\Microsoft Visual Studio 9.0\VC\crt\src\
にあるoutput.cのことでしょうか?
そうだとしても、今の私のスキルでは解読することができません。

この時刻のコントロールのプロパティは、以下のように設定しました。
ID : IDC_DATETIMEPICKER4
Format : 時刻
Use Spin Control : True ( 淡色表示になっている )
その他は、デフォルト値です。

このコントロールのイベントハンドラコード部分

void CDateTimeCtrlDialog::OnDtnDatetimechangeDatetimepicker4(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMDATETIMECHANGE pDTChange = reinterpret_cast<LPNMDATETIMECHANGE>(pNMHDR);
    // TODO: ここにコントロール通知ハンドラ コードを追加します。
    CTime ct;
    m_MonthCal4.GetTime( ct );
    m_strDate4.Format( L"%02d:%02d:%02" , ct.GetHour() , ct.GetMinute() , ct.GetSecond() );
    UpdateData( false );

    *pResult = 0;
}
どなたか教えてください。
お願いします。

投稿日時 - 2010-03-07 17:39:58

QNo.5732890

すぐに回答ほしいです

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

こんにちわ。

> C:\Program Files\Microsoft Visual Studio 9.0\VC\crt\src\
> にあるoutput.cのことでしょうか?

はい。それのことです。
画像の例外は、ST_NORMAL または ST_TYPE のどちらかのフラグがセットされていなければならないのに、そうなってないために発生しているエラーです。
output.c というのは、printf系の出力の内部処理なので、貴方の Format(L".. に記述ミスがあるということです。そして、ST_TYPE は、printf書式の最後の、c、s、d、i、o、u、x 等の書式のことを言っています。

"%02d:%02d:%02" の一番最後に "d" とか付いている必要があるのではありませんか?

投稿日時 - 2010-03-08 06:53:40

お礼

>ST_TYPE は、printf書式の最後の、c、s、d、i、o、u、x 等の書式のことを言っています。
そうだったんですね。
エラーの内容に面食らって、ソースを調べることをしていませんでした。

しかし、'ST_TYPE'が何か?というところまで行き着くには、時間がかかったと思います。

お手数をお掛けしました。
本当にありがとうございました。

投稿日時 - 2010-03-08 08:35:35

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問