用两个窗口在C ++中应用。任务栏中显示一个窗口。另一个没有显示

时间:2013-09-12 17:59:08

标签: c++ user-interface mfc

我在编码之前做了一些分析,但是在找到有这些特征的应用程序时,我在查找信息或实现方面遇到了一些麻烦:

  1. 窗口#1(显示在任务栏上)
  2. Window#2(在任务栏上没有显示,你可以把这个放在Window#1后面,所以我们不是在谈论从Window#1扎根的弹出窗口/对话框)
  3. Window#1和Window#2都在同一个Project(或应用程序,可以这么说)
  4. 同样,这只是在概念上讲,所以如果你能指出一些证明这是可能的信息,那就太好了。注意,这是用C ++而不是C#。

1 个答案:

答案 0 :(得分:1)

我想出的最接近的是:

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

    void 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);
    

    }

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

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

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