- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++ Win32APIでDateTimePickerの初期値を変更す)
C++ Win32APIでDateTimePickerの初期値を変更する方法は?
このQ&Aのポイント
- C++のWin32APIを使用して、DateTimePickerの初期値を変更する方法について教えてください。
- VisualStudio2008でダイアログを作成し、DateTimePickerを配置しています。現在の時刻が表示されていますが、指定の時刻を表示するにはどうすれば良いでしょうか?
- 初心者のためわからない箇所があり、WM_INITDIALOGにてSetDlgItemを使用すると思っていますが、具体的に何を入力すれば良いのかわかりません。ご教授いただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
DTM_SETSYSTEMTIMEメッセージ、あるいはDateTime_SetSystemtime()マクロ…でしょうか? SetDlgItem~であるかは不明ですが… SendDlgItemMessage()でDTM_SETSYSTEMTIMEを投げるとか、 DateTime_SetSystemtime()マクロでGetDlgItem()で投げる先のHWNDを取得するとか。
お礼
教えて頂いた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が表示される 有り難うございました!!