Frage

Ich habe Code gesehen, die die Zeichnung dieser Sache (DFCS_SCROLLSIZEGRIP) behandelt, aber sicher gibt es ein Fenster Stil, die ich anwenden kann „kostenlos“ zu bekommen. Richtig?

War es hilfreich?

Lösung

Anstelle einer besseren Antwort, werde ich nach dem Code Ich habe, dass die Größe Griff zieht und übernimmt die Hit-Tests. Sie müssen auch den entsprechenden Bereich während OnSize um ungültig zu machen, um es neu gestrichen.

BOOL CMyDialog::OnEraseBkgnd(CDC* pDC)
{
    if (CDialog::OnEraseBkgnd(pDC))
    {
        // draw size grip
        CRect r;
        GetClientRect(&r);
        int size = GetSystemMetrics(SM_CXVSCROLL);
        r.left = r.right - size;
        r.top = r.bottom - size;
        pDC->DrawFrameControl(&r, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

-

LRESULT CMyDialog::OnNcHitTest(CPoint point)
{
    // return HTBOTTOMRIGHT for sizegrip area
    CRect r;
    GetClientRect(&r);
    int size = GetSystemMetrics(SM_CXVSCROLL);
    r.left = r.right - size;
    r.top = r.bottom - size;
    ScreenToClient(&point);

    if (r.PtInRect(point))
    {
        return HTBOTTOMRIGHT;
    }
    else
        return CDialog::OnNcHitTest(point);
}

Quelle: http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.ui/2006-01/msg00103.html

scroll top