dポイントプレゼントキャンペーン実施中!

C++ Win32APIでDateTimePickerの初期値を変更するには?

VisualStudio2008を使用しています。

ダイアログを作成してDateTimePickerを配置し、プロパティのFormatを”時刻”と設定して表示してみると、現在の時刻が表示されました。

これに指定の時刻を設定して表示するにはどうしたらよいでしょうか?

WM_INITDIALOGにてSetDlgItem「~」という感じで設定すると勝手に想像しているのですが、「~」に何を入れていいのか判らず途方に暮れています。

何分C++の初心者なもので説明も至らない所があるとは思いますが、ご指導の程、宜しくお願い致します。

A 回答 (1件)

DTM_SETSYSTEMTIMEメッセージ、あるいはDateTime_SetSystemtime()マクロ…でしょうか?



SetDlgItem~であるかは不明ですが…
SendDlgItemMessage()でDTM_SETSYSTEMTIMEを投げるとか、
DateTime_SetSystemtime()マクロでGetDlgItem()で投げる先のHWNDを取得するとか。
    • good
    • 0
この回答へのお礼

教えて頂いたDateTime_SetSystemtimeをgoogle検索し、見つかったhttp://homepage2.nifty.com/c_lang/sdk4/sdk_343.htmを参考にすることで実現出来ました!


//時刻指定用ダイアログのコールバック
BOOL CALLBACK DlgProc(HWND hDlgWnd, UINT msg, WPARAM wp, LPARAM lp)
{
static HWND hTime;
SYSTEMTIME st;

switch (msg)
{
case WM_INITDIALOG:
hTime = GetDlgItem(hDlgWnd, IDC_DATETIMEPICKER1);
GetLocalTime(&st);

st.wHour = 12;
st.wMinute = 34;
st.wSecond = 56;
DateTime_SetSystemtime(hTime,GDT_VALID,&st);
break;
}
}
//DateTimePickerに12:34:56が表示される

有り難うございました!!

お礼日時:2010/11/04 09:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!