Child-Windows



  • Hi...

    Wer kann mir mal helfen?
    Ich habe ein CMainFrame und möchte ein paar Child-Windows erzeugen. Ich habe im CMainFrame einige CFrameWnd's mit new angelegt, dessen Window Styles u.a WS_CHILD beinhalten.
    Nachdem ich eine halbe Stunde nichts gesehen habe, habe ich nun festgestellt, dass ich mit pFrameWnd->SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE) jedes neue Child-Fenster in der Z-Sortierung nach vorne holen muss.

    Bisher ist also alles so wie es sein soll, bis auf eine Sache: Wieso sind die Child-Windows nicht aktiv, wenn man sie anklickt? Die Titelleisten der Fenster sind immer inaktiv... Wenn ich nun ganz naiv einfach jedes Fenster mit ActivateWindow bei einem Mausklick in der jeweiligen Child-Fenster-Klasse aktiviere, sind dafür alle Fenster aktiv...
    Grr...

    Wie kann ich erreichen, dass sich die Child-Windows wie ganz normale Fenster einer Applikation verhalten?



  • MDI



  • Original erstellt von <uC>:
    MDI

    GIbt es keinen anderen Weg???



  • Ich nochmal:

    Selbst in einer MDI-Anwendung wird ein CFrameWnd mit der folgenden Initialisierung nicht aktiviert:

    CFrameWnd* pFrameWnd = new CFrameWnd();
    RECT rect;
    rect.top = 100;
    rect.bottom = 200;
    rect.left = 50;
    rect.right = 70;
    pFrameWnd->Create(NULL,
    "Test",
    WS_CHILD | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP,
    rect,
    this->GetWindow(GW_CHILD),
    NULL,
    0,
    NULL);
    pFrameWnd->SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
    pFrameWnd->ShowWindow(TRUE);

    Wieso nicht???


Anmelden zum Antworten