System modaler Dialog



  • Hallo,

    ich schreibe mir gerade einen systemweit modalen Dialog.
    Ich habe das jetzt so gelöst:
    Ich erstelle ein Fenster mit

    hWnd = CreateWindowEx(
                   WS_EX_TOOLWINDOW | WS_EX_TRANSPARENT |
                   WS_EX_TOPMOST,
                   L"blockwnd", L"", NULL,
                   0, 0, GetSystemMetrics(SM_CXSCREEN),
                   GetSystemMetrics(SM_CYSCREEN),
                   GetDesktopWindow(), NULL, hInstance, NULL);
    

    In der damit verbundenen Windowprozedur rufe ich meinen Dialog auf.
    Das ganze klappt auch wunderbar, einziges Problem ist, dass auf dem
    Bildschirm an den horizontalen wie vertikalen Seiten "inaktive" Ränder
    über bleiben.
    Ebenso stört mich das TOOLWINDOW, das ich aber benötige, um die
    Abrundungen der Fenster unter WinXP zu "beheben".
    Am liebsten würde ich das Problem mit
    ShowWindow(hWnd, SW_HIDE);
    lösen, aber dann wird das Fenster nicht "angezeigt" und der Dialog ist
    nicht modal.

    Wäre froh, wenn mir jemand helfen könnte.

    PS.: Falls es eine leichtere Methode für systemweite Dialoge gibt, würde
    ich die auch gerne erfahren. Trotzdem würde ich auch gerne eine Lösung
    für mein Problem haben 🙂

    plusman



  • Hallo

    Also mit Microsoft Visual C++ kannste im Resourceneditor nen Dialog erstellen und in den Eigenschaften die Checkbox "Systemmodal" aktivieren...was anderes wüsste ich auch nicht :p

    dann vllt. noch:

    Ebenso stört mich das TOOLWINDOW, das ich aber benötige, um die
    Abrundungen der Fenster unter WinXP zu "beheben".

    meinst du WS_POPUP ?



  • Das mit dem DS_SYSMODAL ist ein wenig tückisch. Ich dachte zunächst auch, das würde funktionieren.
    Aber das DS_SYSMODAL wird durch das CreateWindowEx in WS_EX_TOPMOST "überführt".
    Das, was ich wünsche, erfüllt das nicht. Hat mich zu Anfang auch sehr verwirrt.



  • plusman schrieb:

    Das, was ich wünsche, erfüllt das nicht.

    Was wünscht du denn genau ? 😕


  • Mod

    CodeFinder schrieb:

    plusman schrieb:

    Das, was ich wünsche, erfüllt das nicht.

    Was wünscht du denn genau ? 😕

    Würde mich auch interessieren.

    In meinen Augen fehlt hier sowieso der Stil WS_POPUP! Zudem hat ein solches erzeugtes Fenster keinen Rahmen... Sofern müssten auch die XP Stile keinen Einfluss haben.



  • Also...

    ich wollte einen modalen Dialog, der den Benutzer dazu zwingt, meinen Dialog zu "bearbeiten". Dabei soll selbst keine andere Anwendung angeklickt werden dürfen (Wie beim Beenden von Windows).

    WS_POPUP hat das Problem behoben, danke 🙂


Anmelden zum Antworten