Sdílet prostřednictvím


Pomocí panelu dialogového okna s ovládacím prvku Rebar

Jak je uvedeno v Rebar ovládací prvky a pruhy, každé pásmo může obsahovat pouze jeden podřízený okna (nebo ovládací prvek).Chcete-li více než jedno okno dítě za pásmo může být omezení.Vhodným řešením je vytvoření prostředku dialogové okno panel s více prvky a přidat do řízení armování armování (páskem panelu dialogového okna).

Obvykle, pokud jste chtěli pásmo panelu dialogového okna zobrazit průhledné, nastavte WS_EX_TRANSPARENT styl pruhu objektu dialogové okno Rozšířené.Ale protože WS_EX_TRANSPARENT má některé problémy s správně Malování na pozadí panelu dialogového okna, budete muset trochu práci k dosažení požadovaného účinku.

Následující postup podrobně kroky nezbytné k dosažení průhlednosti bez použití WS_EX_TRANSPARENT extended styl.

V pásmu armování implementovat panel průhledné dialogového okna

  1. Použití dialogové okno Přidat třídu, přidání nové třídy (například CMyDlgBar), implementuje objekt panelu dialogového okna.

  2. Přidat ovladač pro WM_ERASEBKGND zprávy.

  3. Nové obslužné rutiny upravte existující kód podle následujícího příkladu:

    BOOL CMyDlgBar::OnEraseBkgnd(CDC* pDC)
    {
        CWnd* pParent = GetParent();
        ASSERT_VALID(pParent);
        CPoint pt(0, 0);
        MapWindowPoints(pParent, &pt, 1);
        pt = pDC->OffsetWindowOrg(pt.x, pt.y);
        LRESULT lResult = pParent->SendMessage(WM_ERASEBKGND,
            (WPARAM)pDC->m_hDC, 0L);
        pDC->SetWindowOrg(pt.x, pt.y);
        return (BOOL)lResult;
    }
    
  4. Přidat ovladač pro WM_MOVE zprávy.

  5. Nové obslužné rutiny upravte existující kód podle následujícího příkladu:

    void CMyDlgBar::OnMove(int x, int y)
    {
       UNREFERENCED_PARAMETER(x);
       UNREFERENCED_PARAMETER(y);
    
       Invalidate();
    }
    

Nové obslužné rutiny simulovat průhlednost panelu dialogového okna předáním WM_ERASEBKGND nadřazené okno zprávy a vynucení repaint každém přesunete objekt panelu dialogového okna.

Viz také

Referenční dokumentace

Pomocí CReBarCtrl

Koncepty

Ovládací prvky (MFC)