|
时间是非常简单的,但是要显示复杂的日期和时间还是要依赖Windows的国际化支援。格式化日期和时间的最简单的方法是呼叫GetDateFormat和GetTimeFormat函式。这些函式在/Platform
SDK/Windows Base Services/General Library/String Manipulation/String
Manipulation Reference/String Manipulation Functions中有记载,但是它们在/Platform
SDK/Windows Base Services/International Features/National Language
Support中进行了说明。这些函式接受SYSTEMTIME结构并且依据使用者在「控制台」的「区域设定」
程式中所做的选择而将日期和时间格式化。
DIGCLOCK不能使用GetDateFormat函式,因为它只知道显示数字和冒号,然而,DIGCLOCK应该能够根据使用者的参数选择来显示12小时或24小时的格式,并禁止(或不禁止)开头的小时数字。您可以从GetLocaleInfo函式中取得这种资讯。虽然GetLocaleInfo在/Platform
SDK/Windows Base Services/General Library/String Manipulation/String
Manipulation Reference/String Manipulation Functions中有记载,但是这个函式使用的识别字在/Platform
SDK/Windows Base Services/International Features/National Language
Support/National Language Support Constants中有说明。
DIGCLOCK在处理WM_CREATE讯息时,最初呼叫GetLocaleInfo两次,第一次使用LOCALE_ITIME识别字(确定使用的是12小时还是24小时格式),然後使用LOCALE_ITLZERO识别字(在小时显示中禁止前面显示0)。GetLocaleInfo函式在字串中传回所有的资讯,但是在大多数情况下把字串转变为整数并不是非常容易。DIGCLOCK把字串储存在两个静态变数中并把它们传递给DisplayTi |