CCommanBar 的关闭按钮不退出应用程序
Close button of CCommanBar does not exit the application
我正在创建一个智能设备应用程序,它以这种方式创建一个命令栏:
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应用。
当我按下关闭按钮时,应用程序 window 消失,但应用程序继续 运行。我意识到这一点是因为当我使用 Visual Studio 2008 进行调试时,调试器没有完成。
我能做什么?
Windows Mobile 上的默认按钮和系统控件不会关闭但会隐藏(最小化)window。所以应用程序在后台保持 运行。
您需要添加自定义代码来结束您的应用。例如,您可以使用单独的按钮或菜单项执行此操作,然后执行 PostQuitMessage 或其他代码以结束主进程(在终止任何创建的后台线程之后)。
您还可以修改 Window 样式以包含关闭(确定)按钮。
CommandBar_AddAdornments(hwnCB, 0, 0);
添加标准命令栏控件,通常是关闭 (X) 和帮助选项。您可以为上述调用使用 CMDBAR_OK 标志来添加 Exit/End(确定)按钮。您的消息循环将收到一条以 IDOK 作为消息 ID 的 WM_COMMAND 消息。这可用于通过 PostQuitMessage() 退出应用程序。参见 MSDN。
对于您的代码:
m_wndCommandBar.AddAdornments(dwAdornmentFlags))
可改为:
m_wndCommandBar.AddAdornments(dwAdornmentFlags || CMDBAR_OK))
我正在创建一个智能设备应用程序,它以这种方式创建一个命令栏:
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应用。
当我按下关闭按钮时,应用程序 window 消失,但应用程序继续 运行。我意识到这一点是因为当我使用 Visual Studio 2008 进行调试时,调试器没有完成。
我能做什么?
Windows Mobile 上的默认按钮和系统控件不会关闭但会隐藏(最小化)window。所以应用程序在后台保持 运行。
您需要添加自定义代码来结束您的应用。例如,您可以使用单独的按钮或菜单项执行此操作,然后执行 PostQuitMessage 或其他代码以结束主进程(在终止任何创建的后台线程之后)。
您还可以修改 Window 样式以包含关闭(确定)按钮。
CommandBar_AddAdornments(hwnCB, 0, 0);
添加标准命令栏控件,通常是关闭 (X) 和帮助选项。您可以为上述调用使用 CMDBAR_OK 标志来添加 Exit/End(确定)按钮。您的消息循环将收到一条以 IDOK 作为消息 ID 的 WM_COMMAND 消息。这可用于通过 PostQuitMessage() 退出应用程序。参见 MSDN。
对于您的代码:
m_wndCommandBar.AddAdornments(dwAdornmentFlags))
可改为:
m_wndCommandBar.AddAdornments(dwAdornmentFlags || CMDBAR_OK))