我正在创建一个智能设备应用程序,它以这种方式创建一个命令栏:
if (!m_wndCommandBar.Create(this) ||
!m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) ||
!m_wndCommandBar.AddAdornments(dwAdornmentFlags))
{
TRACE0("CommandBar no se pudo crear\n");
return -1; // No se pudo crear
}
m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED);
这样,使用关闭按钮创建命令栏。
这是智能设备的SDI应用程序。
当我按下关闭按钮时,应用程序窗口消失,但应用程序继续运行。我意识到这一点,因为当我使用Visual Studio 2008进行调试时,调试器没有完成。
我该怎么办?
答案 0 :(得分:0)
Windows Mobile上的默认按钮和系统控件不会关闭,但会隐藏(最小化)窗口。所以应用程序在后台继续运行。
您需要添加自定义代码才能结束您的应用。您可以使用seprate按钮或菜单项执行此操作,然后执行PostQuitMessage或其他代码以结束主进程(在终止任何创建的后台线程之后)。
您也可以修改窗口样式以包含关闭(确定)按钮。
CommandBar_AddAdornments(hwnCB, 0, 0);
添加标准命令栏控件,通常是Close(X)和Help选项。您可以使用CMDBAR_OK标志进行上述调用,以添加一个退出/结束(确定)按钮。您的消息循环将获得带有IDOK作为消息ID的WM_COMMAND消息。这可以用于使用PostQuitMessage()退出应用程序。请参阅MSDN。
代码:
m_wndCommandBar.AddAdornments(dwAdornmentFlags))
可以更改为:
m_wndCommandBar.AddAdornments(dwAdornmentFlags || CMDBAR_OK))