0

我正在努力解决 Windows Mobile 编程(基于对话框的应用程序)中的一个问题。

我有基于对话框的 MFC 应用程序。应用程序是这样创建的:

BOOL MyApp::InitInstance()
{
    MainDlg dlg;
    dlg.DoModal();

    m_pMainWnd = &dlg;

    return FALSE;
}

这工作得很好。但它有一个大问题。如果用户最小化应用程序(例如通过点击“主页按钮”),他无法再次检索应用程序窗口,这是不可想象的(因为应用程序与外部设备有一些连接,如果发生这种情况,必须重置手机和设备)。

我有一个解决方案,但无法实现它:创建CFrameWnd将成为主窗口,该窗口将“加载”对话框。这意味着,该应用程序将具有窗口,用户将能够使用任务管理器并将其置于顶部(这是不可能的,因为基于对话框的应用程序未列在任务管理器的应用程序中)。

我非常感谢一些经验丰富的开发人员的帮助,他们在 MFC 方面的技能比我更好。

有关更多信息:我正在使用带有 SP 3 的 eVC++ 4.0

4

2 回答 2

0

只是一个猜测:对话框的重新激活以某种方式取决于m_pMainWnd成员,直到返回后才设置, 对话框关闭时。隐藏时不会关闭,因此未初始化。DoModalm_pMainWnd

在调用之前尝试设置它DoModal

于 2011-08-24T14:11:16.810 回答
0

好吧,我终于想通了。我已关闭Title bar,因此任务管理器没有显示我的应用程序,因为它没有任何窗口。

但是启动应用程序后,它在任务栏和标题栏都有标题。要删除标题栏和边框,我留下了以下选项:

  • [确定] 标题栏
  • 边框-细

在代码中我这样做了:

BOOL MyDlg::OnInitDialog()
{
     ...

     ModifyStyle(WS_BORDER, 0, SWP_FRAMECHANGED);
     MoveWindow(...);
}

现在我的应用程序有窗口 - 它在任务管理器中可见,而且我正在使用尽可能多的空间。

于 2011-08-29T12:01:54.493 回答