wince6.0使用duilib移植日历控件

vds2000nan 2015-12-04 04:49:42
参考:win32下
CDateTimeUI
1、该控件继承了CLabelUI控件,该空间并无重写SetAttribute的函数。全部属性跟CLabelUI控件一样。
2、该控件又有CDateTimeWnd类的一个指针用来显示具体让你选择的时间,该类就是创建的是SysDateTimePick32的控件。 也许会疑惑,为什么Init函数里面的Create没有关于DateTimePick32的相关说明,但是却能创建出这样一个控件。主要要看 CWindowWnd::Create函数,该函数的第一个判断语句在GetSuperClassName()获取到了CDateTimeWnd函数的字符串, 因为不为空则调用对应的RegisterSuperclass进行注册DateTimePicker控件。
这是RegisterSuperClass函数的获取对应DateTimerPicker控件的Wndclassex ::GetClassInfoEx(NULL, GetSuperClassN ame(), &wc)
3、该控件在被选中的时候就New一个CDateTimeWnd的实例,并显示。(见DoEvent)
4、CDatetimeWnd在失去焦点之后会自动销毁自身,并把时间设置给CDateTimeUI

问题:在wince下移植日历控件的时候
///移植代码
WNDCLASS wc = { 0 };
if( !::GetClassInfo(NULL, GetSuperClassName(), &wc) ) {
int n = GetLastError();
if( !::GetClassInfo(CPaintManagerUI::GetInstance(), GetSuperClassName(), &wc) ) {
ASSERT(!"Unable to locate window class");
return NULL;
}
}
////
GetSuperClassName() 返回_T("SysDateTimePick32"),::GetClassInfo在win32下可以使用,wince下不行,wc的值为空
getlasterror = 1411
...全文
264 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vds2000nan 2015-12-15
  • 打赏
  • 举报
回复
我在wince 下的mfc 下做了一个日历控件,是正常的,但是在dui中继承这个类的时候出问题,算了,我自己重新写了一个类,多谢了
vds2000nan 2015-12-09
  • 打赏
  • 举报
回复
关键是我找的到这个类啊,而且如果这个类不存在的话,我在mfc下怎么能创建这个类?
91program 2015-12-09
  • 打赏
  • 举报
回复
引用 4 楼 vds2000nan 的回复:
关键是我找的到这个类啊,而且如果这个类不存在的话,我在mfc下怎么能创建这个类?
MFC?是桌面系统,还是 WinCE? WinCE的 MFC只是桌面系统的一个子集,而不是全部。
91program 2015-12-08
  • 打赏
  • 举报
回复
Error Code 1411 表示:类不存在。已经说明的很清楚了!
vds2000nan 2015-12-04
  • 打赏
  • 举报
回复
wince支持这个函数啊,使用edit的时候方式是一样的, GetSuperClassName() 返回_T("Edit"),可以正常的使用,SysDateTimePick32 这个在wince 的sdk中也是有定义的,但是返回的参数是空的
91program 2015-12-04
  • 打赏
  • 举报
回复
移植,就是这样,遇到 WinCE 不支持的函数时只能看懂功能然后自己实现。如果实在不能实现,就只能换方法。

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧