用Create创建的CDateTimeCtrl,想在选择一个日期后即关闭该控件,要怎么做?

时间:2022-09-24 19:13:19
如题,是想在选中一个日期后,就关闭显示日期的那个框框, 就好像是拖放的控件时的那样,不知道该怎么做,要处理什么事件或方法吗?

6 个解决方案

#1


控件自身没自动处理么?

#2


引用 1 楼 stjay 的回复:
控件自身没自动处理么?

对呀
选择一个日期后本来就会自动关闭啊

#3


可是没有关闭啊,一直到我在OnKillFocus中调用DestroyWindow,才消失

#4


引用 3 楼 ccmfk 的回复:
可是没有关闭啊,一直到我在OnKillFocus中调用DestroyWindow,才消失
你怎么用的?

#5


用CMyDateTime继承了CDateTimeCtrl

在View中创建的时候:m_date就是CMyDateTime型的变量

m_date.Create(WS_VISIBLE | WS_CHILD | DTS_SHORTDATEFORMAT, rc, this, IDC_DATETIME);
m_date.SetFont(GetFont());

COleDateTime dbTime;
dbTime.SetDateTime(year, month, day, 0, 0, 0);  //year,month,day都是int型的变量,而且都有值

m_date.SetTime(dbTime);

m_date.SetFocus();
m_date.ShowWindow(SW_SHOW);

在CMyDateTime中处理了OnKillFocus消息,调用了View类中的一个公共方法,该方法中又调用了
m_date.DestroyWindow();

#6


引用 5 楼 ccmfk 的回复:
用CMyDateTime继承了CDateTimeCtrl

在View中创建的时候:m_date就是CMyDateTime型的变量

m_date.Create(WS_VISIBLE | WS_CHILD | DTS_SHORTDATEFORMAT, rc, this, IDC_DATETIME);
m_date.SetFont(GetFont());

COleDateTime d……

原来你重载了
估计是这里
引用 5 楼 ccmfk 的回复:
在CMyDateTime中处理了OnKillFocus消息,调用了View类中的一个公共方法,该方法中又调用了

出的问题
不过你既然你通过m_date.DestroyWindow();实现销毁了也就无所谓了
能用就好

#1


控件自身没自动处理么?

#2


引用 1 楼 stjay 的回复:
控件自身没自动处理么?

对呀
选择一个日期后本来就会自动关闭啊

#3


可是没有关闭啊,一直到我在OnKillFocus中调用DestroyWindow,才消失

#4


引用 3 楼 ccmfk 的回复:
可是没有关闭啊,一直到我在OnKillFocus中调用DestroyWindow,才消失
你怎么用的?

#5


用CMyDateTime继承了CDateTimeCtrl

在View中创建的时候:m_date就是CMyDateTime型的变量

m_date.Create(WS_VISIBLE | WS_CHILD | DTS_SHORTDATEFORMAT, rc, this, IDC_DATETIME);
m_date.SetFont(GetFont());

COleDateTime dbTime;
dbTime.SetDateTime(year, month, day, 0, 0, 0);  //year,month,day都是int型的变量,而且都有值

m_date.SetTime(dbTime);

m_date.SetFocus();
m_date.ShowWindow(SW_SHOW);

在CMyDateTime中处理了OnKillFocus消息,调用了View类中的一个公共方法,该方法中又调用了
m_date.DestroyWindow();

#6


引用 5 楼 ccmfk 的回复:
用CMyDateTime继承了CDateTimeCtrl

在View中创建的时候:m_date就是CMyDateTime型的变量

m_date.Create(WS_VISIBLE | WS_CHILD | DTS_SHORTDATEFORMAT, rc, this, IDC_DATETIME);
m_date.SetFont(GetFont());

COleDateTime d……

原来你重载了
估计是这里
引用 5 楼 ccmfk 的回复:
在CMyDateTime中处理了OnKillFocus消息,调用了View类中的一个公共方法,该方法中又调用了

出的问题
不过你既然你通过m_date.DestroyWindow();实现销毁了也就无所谓了
能用就好