カレンダ-を実装します、大分賑やかになって来ましたね!まだまだこれからふやしますよ!皆さん是非応用してくださいね!
カレンダ-コントロ-ルの実装
カレンダ-コントロ-ルを実装しました、これらを制御する為には色々な関数も追加しなければ行けません。主にドキュメントクラスに実装します。主に年数とか日とかユ-ザ-が操作した結果で処理は変化します、
下記のコ-ドはドキュメントクラスに
/////////////////////////////////////////////////////////////////////////////
///////////////////////////// 月初めの曜日を求める ///////////////////////
/////////////////////////////////////////////////////////////////////////////
CString CControlPracticeDoc::MoonFrsteDay(SYSTEMTIME SysTemTime)
{
int day=SysTemTime.wDay;//今日の日
int week=SysTemTime.wDayOfWeek;//今日の曜日
CString FirstWeek=wDayOfWeekCheck(week);
for(int i=day;0<i;i--){
--week;
if(week<0) week=6;
if(week==6) break;
}
return wDayOfWeekCheck(week-1);
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
CString CControlPracticeDoc::MoonCheck(int Moon)
{
CString moon=_T(“”);
switch (Moon)
{
case 1:
moon = _T("一月");
break;
case 2:
moon = _T("二月");
break;
case 3:
moon = _T("三月");
break;
case 4:
moon = _T("四月");
break;
case 5:
moon = _T("五月");
break;
case 6:
moon = _T("六月");
break;
case 7:
moon = _T("七月");
break;
case 8:
moon = _T("八月");
break;
case 9:
moon = _T("九月");
break;
case 10:
moon = _T("十月");
break;
case 11:
moon = _T("十一月");
break;
case 12:
moon = _T("十二月");
break;
}
return moon;
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
CString CControlPracticeDoc::wDayOfWeekCheck(int wDayOfWeek)
{
CString day=_T(“”);
switch (wDayOfWeek)
{
case 0:
day = _T("日曜日");
break;
case 1:
day = _T("月曜日");
break;
case 2:
day = _T("火曜日");
break;
case 3:
day = _T("水曜日");
break;
case 4:
day = _T("木曜日");
break;
case 5:
day = _T("金曜日");
break;
case 6:
day = _T("土曜日");
break;
}
return day;
}
次にイベントハンドラを追加します
RightFormVewに追加します、これによりカレンダ-のどこが選択されたのか知る事が出来ます。
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
void RightFormVew::OnMcnSelectMonthcalendar1(NMHDR *pNMHDR, LRESULT *pResult)
{
CString time ;
CControlPracticeDoc* pDoc = GetDocument();
LPNMSELCHANGE pSelChange = reinterpret_cast<LPNMSELCHANGE>(pNMHDR);
SYSTEMTIME st ;
GetLocalTime(&st);
//==============================================================================
time.Format(_T("%d/%d/%d/%d:%d"),st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute);
*pResult = 0;
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
void RightFormVew::OnMcnSelchangeMonthcalendar1(NMHDR *pNMHDR, LRESULT *pResult)
{
CString time ;
CControlPracticeDoc* pDoc = GetDocument();
LPNMSELCHANGE pSelChange = reinterpret_cast<LPNMSELCHANGE>(pNMHDR);
SYSTEMTIME st ;
GetLocalTime(&st);
//==============================================================================
time.Format(_T("%d/%d/%d/%d:%d"),st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute);
*pResult = 0;
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
void RightFormVew::OnMcnGetdaystateMonthcalendar1(NMHDR *pNMHDR, LRESULT *pResult)
{
CString time ;
CControlPracticeDoc* pDoc = GetDocument();
LPNMSELCHANGE pSelChange = reinterpret_cast<LPNMSELCHANGE>(pNMHDR);
SYSTEMTIME st ;
GetLocalTime(&st);
//==============================================================================
time.Format(_T("%d/%d/%d/%d:%d"),st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute);
*pResult = 0;
}
MFC BMPイメージを保存するには MFC ハードコピ-を取り込むには BMPファイルのアクセス