// maindlg.h内
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDLG };
CDateTimePickerCtrl m_datetime_getdate;
// メッセージマップ
BEGIN_MSG_MAP_EX(CMainDlg)
MSG_WM_INITDIALOG(OnInitDialog)
NOTIFY_HANDLER_EX(IDC_DATETIMEPICKER_GETDATE, DTN_DROPDOWN, OnDateTimeDropDown)
COMMAND_ID_HANDLER_EX(IDOK, OnOK)
COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel)
END_MSG_MAP()
LRESULT OnInitDialog(HWND hWnd, LPARAM lParam){
// スクリーンの中央に配置
CenterWindow();
// 大きいアイコン設定
HICON hIcon = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON));
SetIcon(hIcon, TRUE);
// 小さいアイコン設定
HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME, LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON));
SetIcon(hIconSmall, FALSE);
// コントロール設定
m_datetime_getdate = GetDlgItem(IDC_DATETIMEPICKER_GETDATE);
// 日時形式の設定
m_datetime_getdate.SetFormat(_T("yyyy-MM-dd"));
// 初期状態の日時設定
SYSTEMTIME st = {0};
st.wYear = 2004;
st.wMonth = 2;
st.wDay = 7;
m_datetime_getdate.SetSystemTime(GDT_VALID, &st);
return TRUE;
}
LRESULT OnDateTimeDropDown(LPNMHDR pnmh){
CMonthCalendarCtrl calendar = m_datetime_getdate.GetMonthCal();
calendar.ModifyStyle(0, MCS_NOTODAY);
CRect rcCalendar;
calendar.GetMinReqRect(rcCalendar);
calendar.MoveWindow(rcCalendar);
return 0;
}
void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
};
|