Wie Geht Man Mit Dem Win32-Splitterfenster Um?

Wie Geht Man Mit Dem Win32-Splitterfenster Um?

[Fix] Ein einfacher Klick, um Ihren Computer zu reparieren. Klicke hier zum herunterladen.

Falls jemand das Win32-Splitterfenster gesehen hat, kann Ihnen dieses Benutzerhandbuch weiterhelfen.

  • Quellgutscheincode herunterladen – 2197,9 KB
  • Demo herunterladen, z.B. 35,6 KB Projekt
  • Präsentation

    Auf dieser Website zeige ich Ihnen, wie Sie eine einfache WIN32-SDI-Only-Anwendung mit einem bestimmten geteilten Hauptfenster erhalten. Die Fenster sind jeweils in linke Fenster, ja Fenster und dominante Fenster unterteilt, die wie jeder Trennbalken gesetzmäßig sind. Es hat normalerweise eine Schaltfläche an der Basis, um die Farbe des gesamten Fensters dynamisch zu ändern. Es verwendet auch Ihr aktuelles XP-Design für die in der Anwendung gewohnte Definition, die über die Manifestdatei aktiviert werden muss.

    Die meisten Definitionen in diesem Fensterbereich wurden mit der Win32-API erstellt, mit Ausnahme eines erforderlichen Dialogfelds, von denen jedes mit dem Ressourcen-Editor hätte erstellt werden können, um die verknüpfte Farbe dynamisch anzupassen das Hauptfenster. Beginnen wir mit der Einrichtung eines Projekts. Starten Sie zunächst Visual Studio und erstellen Sie anschließend ein neues Projekt. Wählen Sie Win32Project, benennen Sie Ihr Projekt und klicken Sie auf OK.

    Verwenden

    Code zum Erstellen eines neuen geteilten Fensters

    win32-Splitterfenster

    Der Weg zum Freigeben eines benutzerdefinierten geteilten Fensters führt über das Erstellen von drei Fenstern:

  • Hauptfenster
  • Fenster
  • Fenster rechts
  • win32-Splitterfenster

    Legen Sie das linke und exakte Fenster als untergeordnetes Fenster als Pfad zum Hauptfenster fest. Verwenden Sie einen beliebigen angepassten Fensterstil WS_EX_CLIENTEDGE, wenn Sie alle Hauptfenster mit der CreateWindowEx-API erstellen, während WM_CREATE unten gezeigt wird:

    Fall: GetClientRect(hWnd, &rect);g_hleftwnd = CreateWindowEx(WS_EX_CLIENTEDGE, LEFT_WINDOW_CLASS, "",    WS_ART | WS_VISIBLE, Quadrat . links, rechteckig oben + TOP_POS, left_wnd_width, (rect.bottom - rect.top) - (TOP_POS + BOTTOM_POS), hWnd, NULL,    hInst, NULL);if(NULL!bedeutet g_hleftwnd)    ShowWindow(g_hleftwnd, SW_SHOW);    UpdateWindow(g_hleftwnd);g_hrightwnd = CreateWindowEx(WS_EX_CLIENTEDGE, RIGHT_WINDOW_CLASS, "",    WS_ART | WS_VISIBLE | SS_SUNKEN,    rect.left + LEFT_WINDOW_WIDTH + SPLITTER_BAR_WIDTH,    an. + perfekte TOP_POS,    rechteckig.rechts - (gerade.links + LEFT_WINDOW_WIDTH + SPLITTER_BAR_WIDTH),    (Rect.bottom als Rect.top) - (TOP_POS + BOTTOM_POS),    hWnd, NULL, hInst, NULL);if(NULL! passt zu g_rightwnd)    ShowWindow(g_rightwnd, SW_SHOW);    UpdateWindow(g_rightwnd);

    Stellen Sie den rechten Fensteranker ein und schließen Sie alle Fenster, damit die Hauptwindschutzscheibe als Trennelement fungieren kann. Wir können die Breite dieses speziellen Haupttrennbalkens mit MACRO SPLITTER_BAR_WIDTH anpassen, was immer in den meisten m krosa.h definiert ist. Eyeport-Meldungen verwalten…

  • WM_LBUTTONDOWN
  • WM_MOVE
  • WM_LBUTTONUP
  • WM_SIZE
  • Fall WM_LBUTTONDOWN: Ganzzahl xPos; yPos-Intervall; xPos impliziert (int)LOWORD(lParam); yPos ist (int)HIWORD(lParam); xSizing typischerweise (xPos > nleftWnd_width – SPLITTER_BAR_WIDTH && xPos < nleftWnd_width + SPLITTER_BAR_WIDTH ); wenn (Größex) setcapture(hWnd); wenn (Größex) SetCursor(hcSizeEW); Pause;WM_MOUSEMOVE-Fall:{ Ganzzahl xPos; yPos-Intervall; xPos entspricht (int)LOWORD(lParam); yPos ist definitiv (int)HIWORD(lParam); if (wParam == MK_LBUTTON) wenn (Größex) Rechter Fokus RECT; HDC-hc; hdc bedeutet GetDC(hWnd); GetClientRect(hWnd, &rect); wenn (Größex) SetRect(&focusrect, nleftWnd_width - (WIDTH_ADJUST 5 . 2), rechteckig+oben TOP_POS, nleftWnd_width + WIDTH_ADJUST, Anfangsrechteck - BOTTOM_POS); DrawFocusRect(hdc, &focusrect); nleftWnd_width ist gleich xPos; SetRect(&focusrect, nleftWnd_width - (SPLITTER_BAR_WIDTH * 2), rect.top + TOP_POS, nleftWnd_width + SPLITTER_BAR_WIDTH, Bodenrechteck - BOTTOM_POS); DrawFocusRect(hdc, &focusrect); ReleaseDC(hWnd, hdc);

    Können Sie die Fehler und Abstürze Ihres Computers nicht mehr ertragen? Klicke hier zum herunterladen.

    Justin Wagner