4.Wince的非模态对话框的简单实现
问题:请问Wince下支持MFC的非模态对话框吗?我创建的非模态对话框咋Wince下,弹出来后,然后用鼠标拖动对话框移动,可是每移动一次,屏幕上就多出一个对话框(和原来的一模一样的),单击关闭也没有响应,不知道是为什么?还有就是在对话抗构造函数中我也用了m_FullScreen=false;但是有时候好像也不起作用,不知道为什么?希望能够得到您的帮助!谢谢!
答案:非模态窗体是指窗体弹出后不影响主进程运行。
Wince下是支持非模态对话框对话框,根据提问者的描述,只能初步估计应该是刷新消息的问题,增加如下代码完成消息分发和强制窗口刷新:
if((hMlDlg== 0) || (!IsDialogMessage(hMlDlg,&Msg)))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
XPE篇
5. XPE的线程操作
问题:我们自己开发的应用,每个进程都要创建10个以上的线程,当线程数量超过一定值后,createthread就会返回错误。请教各位高手了,谢谢!
答案:XPE本身是XP Professional的二进制组件化版本,在二进制文件、内存管理和进程管理上都和XP Professional完全一致。换句话来说,只要操作系统内存允许的情况下,对线程数量是没有限制的。
1. 如果把你做好的应用程序在XP Professional上运行,看看是否还出现类似的问题,如果出现,则说明你的应用程序在线程控制方面存在问题,请检查你的代码;
2. 如果你的应用程序在XP Professional上运行正常,而在XPE上运行不正常,那么可能是因为你的XPE缺少某些系统组件。
6.XPE的跨平台开发
问题:xpe多媒体支持强不强,我的程序是C#开发的,这个系统支持吗?
答案:xpe和xp是同样的二进制文件,不过是组件化的,所以,只要你添加了合适的组件(比如.net framwork)那么2者之间的程序都是可以跨平台使用的。同时,XPE支持所有基于Win32\MFC\.Netframework开发出来的应用程序。