繁体   English   中英

在C ++中有两个窗口的应用程序。 任务栏中显示一个窗口。 其他未显示

[英]Application in C++ with two windows. One window shown in taskbar. The other not shown

我在编码之前进行了一些分析,在查找具有以下特征的应用程序的信息或实现时遇到了一些麻烦:

  1. 窗口#1(显示在任务栏上)
  2. 窗口2(不在任务栏上显示,您可以将其放在窗口1后面,因此我们不是在谈论源自窗口1的弹出窗口/对话框)
  3. 窗口#1和窗口#2都在同一个项目(或应用程序)中

同样,这只是从概念上讲,因此,如果您可以向我提供一些证明这是可能的信息,那就太好了。 注意,这是在C ++中而不是C#中。

我想到的最接近的是:

  1. 添加了从CWnd派生的类
  2. 在类中添加了以下功能

    无效Create2ndWindow(CWnd * pParent){

    LPCTSTR pszClassName = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW,:: LoadCursor(NULL,IDC_ARROW),(HBRUSH):: GetStockObject(WHITE_BRUSH),:: LoadIcon(NULL,IDI_APPLICATION));

     BOOL bCreated = CreateEx(WS_EX_CLIENTEDGE, pszClassName, _T("My Second Window"), WS_BORDER|WS_CAPTION|WS_ACTIVECAPTION|WS_MAXIMIZEBOX|WS_MINIMIZEBOX|WS_POPUPWINDOW|WS_SIZEBOX, CRect(20, 20, 100, 100), pParent, NULL); if(bCreated) ShowWindow(SW_SHOW); 

    }

  3. 在InitInstance中,我添加了以下几行: CSecondWindow * pWnd = new CSecondWindow(); pWnd-> Create2ndWindow(PFRAME);

  4. 执行该应用程序,您的桌面上将出现2个Windows,但是您应该只看到一个用于pFrame窗口的任务栏按钮,而没有看到用于CSecondWindow的按钮

如果pParent为NULL,那么您将看到任务栏按钮。 您可以添加WS_EX_TOOLWINDOW另一种样式,但这会减少标题栏的高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM