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