IT行業(yè)發(fā)展迅速,到了vc2010的時候,對時間與月歷控件的使用已經(jīng)推及到屬性的設(shè)置。但是初學(xué)者不應(yīng)該一開始就接觸高級的編譯器,學(xué)習(xí)原理和基礎(chǔ)的學(xué)者最好是從C++和VC6開始。其實不論從哪里開始也好,“學(xué)好一門語言,精通一個編譯器,實現(xiàn)計算機(jī)的一通百通”是我從別人哪里得到的信息,并作為學(xué)習(xí)的指南。此路走的通,也希望后繼者走下去。
又或者,困難的本身不在于難懂,而在于你的選擇。
介紹用法:
///////////時間與月歷控件
風(fēng)格:
DTS_APPCANPARSE //
DTS_LONGDATEFORMAT //創(chuàng)建長時間,像 "Friday, April 19, 1996."
注意::://要獲得使用所有的語言環(huán)境中,長日期格式EnumDateFormats , EnumDateFormatsEx ,或EnumDateFormatsExEx 。
DTS_SHOWNONE //可選需要用的日期風(fēng)格,
復(fù)選框能被DTM_SETSYSTEMTIME或 DTM_GETSYSTEMTIME 獲得
DTS_SHORTDATEFORMAT //創(chuàng)建短時間。像"4/19/96."
DTS_TIMEFORMAT //創(chuàng)建有旋轉(zhuǎn)按鈕,顯示時間的,可以編輯的"5:31:42 PM."
DTS_UPDOWN //創(chuàng)建有旋轉(zhuǎn)按鈕,不能拉下的,沒復(fù)選框的日期風(fēng)格
1、DTM_GETMONTHCAL //獲取日期時間控件的日歷子窗口的句柄
wParam = 0;
lParam = 0;
2、DTM_GETMCCOLOR //獲得日歷時間控件的日歷子窗口的顏色、
wParam = (WPARAM)(INT)iColor; //
lParam = 0;
iColor; 的值:
MCSC_BACKGROUND 檢索月份之間的背景顏色顯示出來。
MCSC_MONTHBK MCSC_MONTHBK 背景顏色檢索在本月內(nèi)顯示出來。
MCSC_TEXT MCSC_TEXT 檢索用于顯示在一個月內(nèi)文本的顏色。
MCSC_TITLEBK MCSC_TITLEBK 檢索背景顏色在日歷的標(biāo)題顯示出來。
MCSC_TITLETEXT MCSC_TITLETEXT .檢索用來顯示在日歷的標(biāo)題文字的顏色。
MCSC_TRAILINGTEXT MCSC_TRAILINGTEXT 檢索使用的顏色來顯示頭一天和后一天的文本頭和尾部天數(shù)由以前的和隨后的幾個月里,關(guān)于當(dāng)前月份的日歷出現(xiàn)的日子。
返回COLORREF :
3、DTM_GETMCFONT //獲得日歷時間控件的日歷子窗口的字體
wParam = 0;
lParam = 0;
4、DTM_GETRANGE //取得日歷時間控件的最大和最小時間
wParam = 0;
lParam = (LPARAM) lpSysTimeArray;
返回一個DWORD值,它是GDTR_MAX組合GDTR_MIN或。第一個元素SYSTEMTIME數(shù)組包含最低限度的時間第二個元素的數(shù)組的SYSTEMTIME包含的最大的允許時間。
5、DTM_GETSYSTEMTIME //檢目前的時間,和填充systime指針
wParam = 0;
lParam = (LPARAM) lpSysTime;
返回值:
返回一個 DWORD值,等于GDT_VALID如果時間信息被成功結(jié)構(gòu)放置在指定的;
或消息可以返回GDT_NONE如果控制被設(shè)置為DTS_SHOWNONE風(fēng)格和控制復(fù)選框未被選中。
6、DTM_SETFORMAT //設(shè)置日期時間選擇器的格式
wParam = 0;
lParam = (LPARAM) lpszFormat;
預(yù)設(shè)的格式有三種可供顯示的日期和時間的顯示
DTS_LONGDATEFORMAT 顯示將是這樣的:“星期五,1996年4月19日”。
DTS_SHORTDATEFORMAT 顯示將是這樣的:“4/19/96”。
DTS_SHORTDATECENTURYFORMAT 顯示將是這樣的:“1996年4月19日”。
DTS_TIMEFORMAT DTS_TIMEFORMAT 顯示將是這樣的:“下午五時31分42秒”。
日期和時間格式元素將被替換為實際的日期和時間他們被定義為以下組的字符。
"d" 一個或兩個數(shù)字的日期。.
"dd" 這兩個數(shù)字的日期。單數(shù)天數(shù)的前面加一個零。.
"ddd" 三個字符的星期幾的縮寫。
"dddd" 完整的星期名稱。
"h" 在12小時格式的一位或兩位數(shù)小時。
"hh" 在12小時格式的兩位數(shù)小時.一位數(shù)數(shù)值前面加一個零。
"H" 以24小時格式的一位或兩位數(shù)小時。
"HH" 以24小時格式的兩位數(shù)小時。一位數(shù)數(shù)值前面加一個零
"m" 一個或兩位數(shù)分鐘
"mm" 這兩個數(shù)字的分鐘。 一位數(shù)數(shù)值前面加一個零。
"M" 一個或兩個數(shù)字的月份數(shù)。
"MM" 這兩個數(shù)字的月份數(shù)。 一位數(shù)數(shù)值前面加一個零。
"MMM" 這三個字符的月份縮寫。
"MMMM" 完整的月份名稱。
"t" 單字母AM / PM縮寫(即上午為“A”顯示)。
"tt" 這兩個字母的AM / PM縮寫(即上午為“AM”顯示)。
"X" //??
"y" 年份的最后一個數(shù)字 (即1996年將作為“6”顯示).
"yy" 最后兩位數(shù)字的年份(即1996年將作為“96”顯示)。
"yyy" 完整的年份(即1996年將作為“1996年”顯示)。
7、DTM_SETMCCOLOR //設(shè)置日期時間選擇器的日歷控件顏色,返回先前的顏色
wParam = (WPARAM)(INT) iColor;
lParam = (LPARAM)(COLORREF) clr;
8、DTM_SETMCFONT //設(shè)置日期時間選擇器的日歷控件字體,fRedraw是是否立即重繪
wParam = (WPARAM)(HFONT) hFont;
lParam = (LPARAM) MAKELONG(fRedraw, 0);
9、DTM_SETRANGE //設(shè)置時間的最大最小值
wParam = (WPARAM) flags;
lParam = (LPARAM) lpSysTimeArray;
10DTM_SETSYSTEMTIME //設(shè)置時間。參考DTM_GETSYSTEMTIME
wParam = (WPARAM) flag;
lParam = (LPARAM) lpSysTime;
////////////////////////月歷控件
1、創(chuàng)建 窗口類MONTHCAL_CLASS 使用SetWindowPos改變大小
2、風(fēng)格:
MCS_DAYSTATE //標(biāo)記選擇的日期。有黑體陰影
MCS_MULTISELECT //選中范圍
MCS_WEEKNUMBERS //顯示周數(shù)
MCS_NOTODAYCIRCLE //不圈今天
MCS_NOTODAY //不顯示今天
MCS_NOSELCHANGEONNAV
MCS_NOTRAILINGDATES
MCS_SHORTDAYSOFWEEK
3、通知消息:
(1)MCM_GETCOLOR //獲得顏色
wParam = (WPARAM)(INT)iColor;
lParam = 0;
iColor的值:
MCSC_BACKGROUND //月之間的背景
MCSC_MONTHBK //背景
MCSC_TEXT //字體.
MCSC_TITLEBK //標(biāo)題
MCSC_TITLETEXT //標(biāo)題
MCSC_TRAILINGTEXT //
(2)MCM_GETCURSEL //獲得當(dāng)前選中的日期
wParam = 0;
lParam = (LPARAM) (LPSYSTEMTIME) lpSysTime;
(3)MCM_GETFIRSTDAYOFWEEK //獲得一個月的第一天
wParam = 0;
lParam = 0;
(4)MCM_GETMAXSELCOUNT //獲得最大最小時間的范圍
wParam = 0;
lParam = 0;
(5)MCM_GETMAXTODAYWIDTH //獲得今天的寬度
wParam = 0;
lParam = 0;
(6)
MCM_GETMINREQRECT //檢索所需的最小尺寸顯示在月歷控制整整一個月。
wParam = 0;
lParam = (LPARAM) (LPRECT) lpRectInfo;
(7)MCM_GETMONTHDELTA //檢索滾動月歷控制率。 滾動速度的月數(shù)
wParam = 0;
lParam = 0;
(8)MCM_GETMONTHRANGE //獲取最新的信息(使用SYSTEMTIME結(jié)構(gòu))表示月歷控件的顯示的上限和下限的。
wParam = (WPARAM)(DWORD) dwFlag;
lParam = (LPARAM)(LPSYSTEMTIME) lprgSysTimeArray;
(9)MCM_GETRANGE //檢索一個月日歷控件設(shè)置最小和最大允許的日期。
wParam = 0;
lParam = (LPARAM)(LPSYSTEMTIME) lprgSysTimeArray;
(10)MCM_GETSELRANGE //獲取最新信息,表示日期的上限和下限范圍目前由用戶選擇。
wParam = 0;
lParam = (LPARAM)(LPSYSTEMTIME) lprgSysTimeArray;
(11) //檢索作為“今天”指定月歷控制日期的信息。
MCM_GETTODAY
wParam = 0;
lParam = (LPARAM)(LPSYSTEMTIME) lpToday;
(12)MCM_GETUNICODEFORMAT //獲得格式
wParam = 0;
lParam = 0;
(13)MCM_HITTEST //決定了一個月歷控制部分是在屏幕上的一個特定點
wParam = 0;
lParam = (LPARAM)(PMCHITTESTINFO) pMCHitTest;
(14)MCM_SETCOLOR //設(shè)置顏色
wParam = (WPARAM)(INT) iColor;
lParam = (LPARAM)(COLORREF) clr;
(15)MCM_SETCURSEL //設(shè)置選中
wParam = 0;
lParam = (LPARAM)(LPSYSTEMTIME) lpSysTime;
(16)MCM_SETDAYSTATE //集目前所有月份的日歷控件在一個月內(nèi)每天可見的狀態(tài)。
wParam = (WPARAM) iMonths;
lParam = (LPARAM)(LPMONTHDAYSTATE) lpDayStateArray;
(17)MCM_SETFIRSTDAYOFWEEK //設(shè)置第一天
wParam = 0;
lParam = (LPARAM)(INT) iDay;
(18)MCM_SETMAXSELCOUNT //設(shè)置可以選擇的最大天數(shù)
wParam = (WPARAM)(INT) iMax;
lParam = 0;
(19)MCM_SETMONTHDELTA //設(shè)置滾動的月數(shù)
wParam = (WPARAM)(INT) iDelta;
lParam = 0;
(20)MCM_SETRANGE //設(shè)置最大最小的選擇范圍
wParam = (WPARAM)(SHORT) fWhichLimit;
lParam = (LPARAM)(LPSYSTEMTIME) lprgSysTimeArray;
(21)MCM_SETSELRANGE //設(shè)置了一個月的日歷控件到一個指定日期范圍內(nèi)選擇
wParam = 0;
lParam = (LPARAM)(LPSYSTEMTIME) lprgSysTimeArray;
(22)MCM_SETTODAY //設(shè)置今天
wParam = 0;
lParam = (LPARAM)(LPSYSTEMTIME) lpSysTime;
(23)MCM_SETUNICODEFORMAT //設(shè)置格式
wParam = (WPARAM)(BOOL)fUnicode;
lParam = 0;
(24) MCM_GETCALENDARBORDER //獲得邊框
posted on 2011-04-11 11:37
Yu_ 閱讀(1160)
評論(0) 編輯 收藏 引用 所屬分類:
Windows程序設(shè)計