一、DTP控件和月历控件的风格及其设置

(1)DTP控件

DTP控件的风格分别如下:

DTS_APPCANPARSE
允许用户对输入消息进行必要的处理。

DTS_LONGDATEFORMAT
用长格式显示日期,如"1999年6月22日"。

DTS_RIGHTALIGN
下拉月历右对齐控件。

DTS_SHOWNONE
在控件中可能没有当前日期。使用此风格时,控件显示一个复选框,当用户选中时,方可键入或选择一个日期。DTS_SHORTDATEFORMAT用短格式显示日期,如“99-6-22"。

DTS_TIMEFORMAT
在控件内显示时间。

DTS_UPDOWN
在控件的右边出现一个旋转按钮用来调整日期。若此风格没指定,则控件的右边是一个下拉按钮用来弹出月历。

这些风格可在CDateTimeCtrl::Create函数中加以设定,也可通过DTP控件的Styles属
性对话框进行设置(如图6.9所示),相关属性说明如下:

.Format
DTP控件的格式有:ShortDate(短格式)、LongDate(长格式)、Time(显示 时 间 ) 。 分别与DTS_SHORTDATEFORMAT 、DTS_LONGDATEFORMAT、DTS_TIMEFORMAT相同。

.Right Align
同DTS_RIGHTALIGN。

.Use Spin Control
同DTS_UPDOWN。

.Show None
同DTS_SHOWNONE。

.Allow Edit
DTP控件允许编辑。

(2)月历控件

月历控件的风格有:

MCS_DAYSTATE
此风格将某一天的显示变成粗体。

MCS_MULTISELECT
允许用户在控件中选择日期范围。缺省时,最大的范围为一周。

MCS_NOTODAY 
在控件的下边不再显示今天的日期。

MCS_NOTODAYCIRCLE
不圈定今天的日期。

MCS_WEEKNUMBERS
在控件的每行左边显示周数(1-52)。

这些风格可在CMonthCalCtrl::Create函数中加以设定,也可通过月历控件的Styles属性
对话框进行设置,相关属性说明如下:

.Day States
同MCS—DAYSTATE。

.Multi Select
同MCS臼MULTISELECT。

.No Today Circle
同MCS—NOTODAYCIRCLE。

.No Today
同MCS_NOTODAY。

.Week Numbers
同MCS_WEEKNUMBERS。

二、基本操作

(1)DTP控件

字体、颜色的操作DTP控件可改变月历对话框的字体,成员函数CDateTimeCtrl::SetMonthCalFont
可实现此操作,其函数原型如下:

void SetMonthCalFont(HFONT hFont,BOOL bRedraw=TRUE);

参数:

hFont
要设置的字体句柄.

bRedraw
当字体设置后,是否立即重画。

与此函数相对应的是获得字体的成员函数CDateTimeCtrl::GetMonthCalFont.改变DTP控件
中的月历颜色可用成员函数CDateTimeCtrl::SetMonthCalColor,其原型如下:

COlORREF SetMonthCalColor(int iColor,COLORREF ref);

此函数成功时将返回月历先前的颜色,否则返回-1。

参数:

iColor
指定月历控件中要设置颜色的部位,它可以是下列值之一

MCSC_BACKGROUND
设置在月份之间的背景色。

MCSC_MONTHBK
设置月份中的背景色。

MCSC_TEXT
设置月份中的文本色。

MCSC_TITLEBK
设置月历题头背景色。

MCSC_TITLETEXT
设置月历题头文本色。

MCSC_TRAILINGTEXT
设置当月份向前后翻页时,与今日相同的日期的颜色。

ref
指定的颜色。

与其相对应的成员函数CDateTimeCtrl::GetMonthCalColor可用来获得相关颜色。在DTP控件
中还可调用成员函数CDateTimeCtrl::GetMonthCalCtrl来获得下拉月历指针。

设置显示的格式

成员函数CDateTimeCtrl::SetFormat是用来设置DTP控件的显示格式,其原型如下:
    BOOL SetFormat(LPCTSTR pstrFormat);

参数pstrFormat是用来指定显示格式,若为NULL则使用缺省的格式。该参数可包含下列格式字符:

"d"
1或2位日期。

"dd"
两位日期,日期为1位数字时,在前加0.

"ddd"
星期缩写成三个字符。

"dddd"
星期全名。

"h"
在12小时格式中,显示1位或2位。

"hh"
12小时格式的两位数显,不足时前补0。

"H"
24小时格式的1位或2位数显。

"HH"
24小时格式的两位数显,不足时前补0。

"m"
分钟的1位或2位数显。

"mm"
分钟的两位数显,不足时前补0。

"M"
月份的1位或2位数显。

"MM"
月份的两位数显,不足时前补0.

"MMM"
月份缩写成三个字符.

"MMMM"
月份全名。

"t"
AM/PM缩写成一个字符如AM缩写成"A"。

"tt"
AM/PM。

"y"
年号的最后1位数,显如1999年显示为9.

"yy"
年号的最后2位数显。

"yyy"
整个年号,如1999。

设置或获取时间

成员函数CDateTimeCtrl::SetTime和CDateTimeCtrl::GetTime分别用来设置和获取DTP
控件中的时间。其函数原型如下:

BOOL SetTime(const COIeDateTime& timeNew);
     BOOL SetTime(const CTime* pTimeNew);
     BOOL SetTime(LPSYSTEMTIME pTimeNew=NULL);

函数第三个形式中的参数pTimeNew是指向SYSTEMTIME结构的指针,其结构如下:
   typedef struct_SYSTEMTIME{ //st
      WORD wYear; //年
      WORD wMonth; //月,0=1月,以此类推
      WORD wDayOfWeek; //一周的某一天,0=星期天,以此类推
      WORD wDay; //天数
      WORD wHour; //小时
      WORD wMinute; //分针
      WORD wSecond; //秒
      WORD wMilliseconds; //百万分之一秒
   } SYSTEMTIME;

BOOL GetTime(COIeDateTime& timeDest)const;
    DWORD GetTime(CTime& timeDest)const;
    DWORD GetTime(LPSYSTEMTIME pTimeDest)const;

(2)月历控件

颜色的设置

在CMonthCalCtrl中,成员函数GetColor和SetColor是用来获取或设置月历控件的有关颜色的,
其定义同DTP控件的同名函数。

设置或获取今天的日期

在CMonthCalCtrl中,成员函数GetToday和SetToday是用来获取或设置月历控件的今
天日期的。其函数原型如下:

BOOL GetToday(COleDateTime& refDateTime)const;
    BOOL GetToday(CTime& refDateTime)const;
    BOOL GetToday(LPSYSTEMTIME pDateTime)const;
    void SetToday(const COleDateTime& refDateTime);
    void SetToday(const LPSYSTEMTIME pDateTime);

设置或获取当前选择项

在CMonthCalCtrl中,成员函数GetCurSel和SetCurSel是用来获取或设置月历控件当
前选择项的。其函数原型如下:
    BOOL GetCurSel(COleDateTime& refDateTime)const;
    BOOL GetCurSel(CTime& refDateTime)const;
    BOOL GetCurSel(LPSYSTEMTIME pDateTime)const;
    BOOL SetCurSel(const COleDateTime& refDateTime);
    BOOL GetCurSel(const CTime& refDateTime);
    BOOL GetCurSel(const LPSYSTEMTIME pDateTime);

三、通知消息

DTP控件的通知消息有:

DTN_DROPDOWN
DTP控件中的月历控件将要显示。

DTN_CLOSEUP
DTP控件中的月历控件将要关闭。

DTN_DATETIMECHANGEDTP
控件中的内容已发生改变。

DTN_FORMAT
文本需要显示在回调域中。

DTN_FORMATQUERY
文本显示所需最大尺寸。

DTN_USERSTRING
用户已完成DTP控件的编辑。

DTN_WMKEYDOWN
用户单击回调域。

月历控件的通知消息有:

MCN_GETDAYSTATE
获得日期的定制风格。

MCN_SELCHANGE
当前选择项已被改变。

MCN_SELECT
在月历控件中选择一个日期。

NM_RELEASEDCAPTURE
释放鼠标的捕获消息。

以上这些消息均可用ClassWizard加以映射。

DateTimePicker相关推荐

  1. dateTimePicker编辑状态下,取值不正确的问题

    当对dateTimePicker进行编辑,回车,调用函数处理dateTimePicker的value值时,其取值结果是你编辑之前的值,而不是你编辑后的值,虽然dateTimePicker.text的值 ...

  2. 封装DateTimePicker并使用绑定时遇到的问题

    请教各位高手: 我想把一个控件封装起来.DateTimePicker 因为他的value的类型为DateTime所以不可以为Null 但是数据库里有一些日期是为空的.如离职日期 现在我写了一个类继承至 ...

  3. bootstrap 时间日期日历控件(datetimepicker)附效果图

    开发交流QQ群:  173683895   173683895   526474645  人满的请加其它群 效果图 代码 <!DOCTYPE html> <html><h ...

  4. vue2.0 与 bootstrap datetimepicker的结合使用

    vue2.0 与 bootstrap datetimepicker的结合使用 1.在很多的项目中,我们都会用到日期插件,然后当我在vue中使用bootstrap datetimepicker时发现双向 ...

  5. C# toolstrip 上添加DateTimePicker Control控件

    private void AddDTPtoToolstrip( n) { DateTimePicker dtp = DateTimePicker; dtp.Width = 110; dtp.Forma ...

  6. jQuery DateTimePicker 日期和时间插件

    jQuery UI很强大,其中的日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式.语言.限制选择日期范围.添加相关按钮以及其它导航等. 日期选择插件是一个配 ...

  7. 在ToolStrip中加入具有更好体验性的DateTimePicker

    一. 需求的产生       很多时候,需要根据年月或日期来检索数据.在我的数据库中,如果只需要以月为单位,我一般按照200801这样的格式(yyyyMM)保存为int类型.在做数据检索时,是根据工具 ...

  8. C# DateTimePicker控件如何精确设置显示时分秒

    项目中需要使用DateTimePicker空间选定当前的时间,但是这个空间默认显示到天,如何能让它显示具体的小时和分钟呢? 我们看到有一个Format属性,Format令我们想到格式化,有这几种格式 ...

  9. Mint-UI 的 DatetimePicker 日期时间插件的安装与使用

    简介:Mint-UI是饿了么出品的基于vue的移动端组件库(element-ui是桌面端) 官网:http://mint-ui.github.io/docs/#/zh-cn2 项目环境:vue-cli ...

  10. datetimepicker时间控件

    喜欢上datetimepicker源自于对bootstrap的喜欢. 一款简单到爆的时间空间 引入jq 引入bootstrap 引入datetimepicker和bootstrap-datetimep ...

最新文章

  1. Nature出炉「中国博士生图鉴」:过半学生想换领域换导师,40%学生受抑郁、焦虑困扰...
  2. java 打印日志log_java如何LOG打印出日志信息
  3. 更新r语言_【R语言学习最佳资料之一】R小抄速查表精简更新版
  4. QuartusII下verilog设计使用OC8051和VGA两个IP核组成片上系统
  5. 实现推拉ui样式_这推拉门隔断,我从没见过!直角设计同时划分3大功能区,太牛了...
  6. PLSQL中文显示乱码(问号)
  7. Files Created on Boot
  8. 程序员的算法课(16)-B+树在数据库索引中的作用
  9. React16:Hooks总览,拥抱函数式 (这大概是最全的React Hooks吧)
  10. 接口测试自动化框架搭建
  11. c++ main函数调用 类中的枚举_为什么 Java 的 main 方法必须是 public static void?
  12. ambari安装hive时连接失败_都快2020年了,ambari自定义服务集成,你还没掌握吗?文末有福利...
  13. 数学建模之案例学习1——企业营销额问题
  14. 每天有数百人搜索App破解,开发者该怎么保护自己的手机应用呢?
  15. 本地事务、分布式事务以及解决方案
  16. 改为dns服务器响应的原因,2020年dns服务器异常的原因及解决方法
  17. 微信小程序Token登录验证
  18. iOS 模拟器安装APP,在电脑上运行ios的app
  19. 论文阅读(13) 水母游泳过程中的神经机械波共振(2021)
  20. Linux 查看查找文件

热门文章

  1. ISO 标准下载 网站
  2. 【动画版】数据结构-B树【宁哥算法课堂】
  3. 国产运动耳机品牌排行榜、2022运动耳机款式盘点
  4. UiPath官网认证培训
  5. loadrunner 缺少vc2005_sp1_with_atl_fix_redist 组件
  6. matlab nan 无色_MATLAB中出现NAN怎么回事
  7. Elasticsearch实战 | match_phrase搜不出来,怎么办?
  8. 我天!中国科技原来有桎梏!道翰天琼认知智能机器人API平台接口为您揭秘-1。
  9. 中国统计,向着“大数据时代”迈进!
  10. BZOJ3926-[Zjoi20150]诸神眷顾的幻想乡