专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »C语言教程 » datetimepicker:完成自编辑地Date Picker控件 »正文

datetimepicker:完成自编辑地Date Picker控件

来源: 发布时间:星期四, 2008年9月25日 浏览:27次 评论:0
程序运行效果截图:


运行环境:VC7, VC6, XP, W2K, Win9X, Win95, NT4, MFC


简介

我想要这样一个控件,既包括标准date picker控件的功能,又能让用户任何时候都能自己输入日期。标准的date picker控件有其自己的实现自编辑日期的方法,但是这并没有达到我想要的。

文档

此控件基于微软的CDateTimeCtrl类,我使用了一些小技巧用我自己的编辑控件和按钮替换了标准的控件,但是处理类仍继承于CDateTimeCtrl。为了实现这个功能,我销毁了已存在的窗口,并且创建了一个与类相关联的我自己的窗口。工作原理参看CDateTimeEditCtrl::OnRecreate。

基于我的实现方法,这个控件的使用与标准的CDateTimeCtrl完全一样。在你的对话框资源中加入一个标准的Date picker控件,然后为其创建CDateTimeEditCtrl类型的成员变量。

这个控件支持通常的Date picker风格,下面几个风格不支持:DTS_UPDOWN, DTS_SHOWNONE, DTS_APPCANPARSE, DTS_LONGDATEFORMAT, and DTS_TIMEFORMAT。

消息传递与标准控件一样,但是不支持DTM_GETRANGE, DTM_SETRANGE和DTM_SETFORMAT消息。控件中事件的通知与标准控件一样,发送给父窗口。

一些额外的公有函数也被加入以提供更强的功能扩展,这些公有函数列表如下:

BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
与CDateTimeCtrl功能类似.


CEdit* GetEditControl() const;
返回一个指向编辑控件的指针,通过这个指针可以直接处理它的属性。


void EnableButton(BOOL bEnable = TRUE);
允许或禁止用来下拉calendar control的按钮

void RestoreFocus(BOOL bRestore = TRUE);
Determines the behaviour when clicking _disibledevent= TRUE);
Sets whether the up/down arrow keys will increment/decrement the part of the date string that contains the cursor.


BOOL GetAllowUpDownKeys();
Returns whether the up/down keys will increment/decrement parts of the date string.

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: