在windows移动平台隐藏基于对话框的应用程序后,用户无法再激活它
After hiding dialog based app on windows mobile platform, user cannot activate it anymore
我正在努力解决Windows Mobile编程(基于对话框的应用程序)的一个问题。
我有基于对话框的MFC应用程序。App是这样创建的:BOOL MyApp::InitInstance()
{
MainDlg dlg;
dlg.DoModal();
m_pMainWnd = &dlg;
return FALSE;
}
这很好。但它有一个大问题。如果用户最小化应用程序(例如通过点击"home键"),他无法再次检索应用程序窗口,这是不可想象的(因为应用程序与外部设备有一些连接,如果发生这种情况,手机和设备必须重置)。
我有一个解决方案,但不能实现它:创建CFrameWnd
,这将是主窗口,这个窗口将"加载"对话框。这意味着,应用程序将有窗口,用户将能够使用任务管理器并将其置于顶部(这是不可能的,因为基于对话框的应用程序不在任务管理器的应用程序中列出)。
我真的很感激有经验的开发人员的帮助,他们比我有更好的MFC技能。
有关更多信息:我正在使用evc++ 4.0与SP 3
只是一个猜测:对话框的重新激活在某种程度上取决于m_pMainWnd
成员,直到 DoModal
返回后,才被设置。,当对话框关闭时。当隐藏时,它不会被关闭,因此m_pMainWnd
未初始化。
尝试在调用DoModal
之前设置
好吧,我终于想通了。我已经关闭了Title bar
,因此任务管理器没有显示我的应用程序,因为它没有任何窗口。
但是在启动应用程序后,它在任务栏和标题栏有标题。删除标题栏&边界,我留下了这些选项:
- [OK]标题栏
- Border - thin
在代码中我这样做了:
BOOL MyDlg::OnInitDialog()
{
...
ModifyStyle(WS_BORDER, 0, SWP_FRAMECHANGED);
MoveWindow(...);
}
现在我的应用程序有窗口-它在任务管理器中可见,而且我也使用了尽可能多的空间
相关文章:
- C++如何通过用户输入删除列表元素
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 使用用户定义函数的字符串反转
- 用户定义函数中的指针和输入
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 通过for循环使用用户输入填充列表
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- 在C++中,我如何接受不同于同一行的用户输入
- 当用户超过按钮点击限制时报告
- Visual C++(VS2017)中用户定义的转换不明确
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 当用户键入分隔符时,停止getline()输入
- 当用户已经是管理员时,通过C++激活管理员 [以管理员身份运行]
- 当用户尝试激活主窗口时引发模态QDialog
- 在windows移动平台隐藏基于对话框的应用程序后,用户无法再激活它