本文整理汇总了C++中wxCopyRectToRECT函数的典型用法代码示例。如果您正苦于以下问题:C++ wxCopyRectToRECT函数的具体用法?C++ wxCopyRectToRECT怎么用?C++ wxCopyRectToRECT使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wxCopyRectToRECT函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawRect
void wxAuiMSWTabArt::DrawBorder(wxDC& dc, wxWindow* wnd, const wxRect& rect)
{
if ( !IsThemed() )
{
wxAuiGenericTabArt::DrawBorder(dc, wnd, rect);
return;
}
wxRect drawRect(rect);
drawRect.y += m_maxTabHeight + wnd->FromDIP(1);
drawRect.height -= m_maxTabHeight;
// Mask border not covered by native theme
wxRect topDrawRect(rect);
topDrawRect.height = drawRect.height;
dc.SetPen(wxPen(wnd->GetBackgroundColour(), GetBorderWidth(wnd)));
dc.DrawRectangle(topDrawRect);
RECT r;
wxCopyRectToRECT(drawRect, r);
wxUxThemeHandle hTheme(wnd, L"TAB");
::DrawThemeBackground(
hTheme,
GetHdcOf(dc.GetTempHDC()),
TABP_PANE,
0,
&r,
NULL);
}
示例2: WXUNUSED
void
wxRendererMSW::DoDrawFrameControl(UINT type,
UINT kind,
wxWindow * WXUNUSED(win),
wxDC& dc,
const wxRect& rect,
int flags)
{
wxCHECK_RET( dc.GetImpl(), wxT("Invalid wxDC") );
wxRect adjustedRect = dc.GetImpl()->MSWApplyGDIPlusTransform(rect);
RECT r;
wxCopyRectToRECT(adjustedRect, r);
int style = kind;
if ( flags & wxCONTROL_CHECKED )
style |= DFCS_CHECKED;
if ( flags & wxCONTROL_DISABLED )
style |= DFCS_INACTIVE;
if ( flags & wxCONTROL_FLAT )
style |= DFCS_MONO;
if ( flags & wxCONTROL_PRESSED )
style |= DFCS_PUSHED;
if ( flags & wxCONTROL_CURRENT )
style |= DFCS_HOT;
if ( flags & wxCONTROL_UNDETERMINED )
// Using DFCS_BUTTON3STATE here doesn't work (as might be expected),
// use the following two styles to get the same look of a check box
// in the undetermined state.
style |= DFCS_INACTIVE | DFCS_CHECKED;
::DrawFrameControl(GetHdcOf(dc.GetTempHDC()), &r, type, style);
}
示例3: GetPageSize
bool wxNotebook::MSWPrintChild(WXHDC hDC, wxWindow *child)
{
// solid background colour overrides themed background drawing
if ( !UseBgCol() && DoDrawBackground(hDC, child) )
return true;
// If we're using a solid colour (for example if we've switched off
// theming for this notebook), paint it
if (UseBgCol())
{
wxRect r = GetPageSize();
if ( r.IsEmpty() )
return false;
RECT rc;
wxCopyRectToRECT(r, rc);
// map rect to the coords of the window we're drawing in
if ( child )
::MapWindowPoints(GetHwnd(), GetHwndOf(child), (POINT *)&rc, 2);
wxBrush brush(GetBackgroundColour());
HBRUSH hbr = GetHbrushOf(brush);
::FillRect((HDC) hDC, &rc, hbr);
return true;
}
return wxNotebookBase::MSWPrintChild(hDC, child);
}
示例4: hTheme
void
wxRendererXP::DrawTreeItemButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,
int flags)
{
wxUxThemeHandle hTheme(win, L"TREEVIEW");
if ( !hTheme )
{
m_rendererNative.DrawTreeItemButton(win, dc, rect, flags);
return;
}
wxCHECK_RET( dc.GetImpl(), wxT("Invalid wxDC") );
wxRect adjustedRect = dc.GetImpl()->MSWApplyGDIPlusTransform(rect);
RECT r;
wxCopyRectToRECT(adjustedRect, r);
int state = flags & wxCONTROL_EXPANDED ? GLPS_OPENED : GLPS_CLOSED;
wxUxThemeEngine::Get()->DrawThemeBackground
(
hTheme,
GetHdcOf(dc.GetTempHDC()),
TVP_GLYPH,
state,
&r,
NULL
);
}
示例5: WXUNUSED
void
wxRendererMSW::DoDrawFrameControl(UINT type,
UINT kind,
wxWindow * WXUNUSED(win),
wxDC& dc,
const wxRect& rect,
int flags)
{
RECT r;
wxCopyRectToRECT(rect, r);
int style = kind;
if ( flags & wxCONTROL_CHECKED )
style |= DFCS_CHECKED;
if ( flags & wxCONTROL_DISABLED )
style |= DFCS_INACTIVE;
if ( flags & wxCONTROL_FLAT )
style |= DFCS_MONO;
if ( flags & wxCONTROL_PRESSED )
style |= DFCS_PUSHED;
if ( flags & wxCONTROL_CURRENT )
style |= DFCS_HOT;
::DrawFrameControl(GetHdcOf(dc.GetTempHDC()), &r, type, style);
}
示例6: hTheme
void
wxRendererXP::DrawTreeItemButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,
int flags)
{
wxUxThemeHandle hTheme(win, L"TREEVIEW");
if ( !hTheme )
{
m_rendererNative.DrawTreeItemButton(win, dc, rect, flags);
return;
}
RECT r;
wxCopyRectToRECT(rect, r);
int state = flags & wxCONTROL_EXPANDED ? GLPS_OPENED : GLPS_CLOSED;
wxUxThemeEngine::Get()->DrawThemeBackground
(
hTheme,
GetHdcOf(dc.GetTempHDC()),
TVP_GLYPH,
state,
&r,
NULL
);
}
示例7: hTheme
void
wxRendererXP::DrawItemSelectionRect(wxWindow *win,
wxDC& dc,
const wxRect& rect,
int flags)
{
wxUxThemeHandle hTheme(win, L"LISTVIEW");
const int itemState = GetListItemState(flags);
wxUxThemeEngine* const te = wxUxThemeEngine::Get();
if ( te->IsThemePartDefined(hTheme, LVP_LISTITEM, itemState) )
{
RECT rc;
wxCopyRectToRECT(rect, rc);
if ( te->IsThemeBackgroundPartiallyTransparent(hTheme, LVP_LISTITEM, itemState) )
te->DrawThemeParentBackground(GetHwndOf(win), GetHdcOf(dc.GetTempHDC()), &rc);
te->DrawThemeBackground(hTheme, GetHdcOf(dc.GetTempHDC()), LVP_LISTITEM, itemState, &rc, 0);
}
else
{
m_rendererNative.DrawItemSelectionRect(win, dc, rect, flags);
}
}
示例8: wxCopyRectToRECT
void wxAuiMSWToolBarArt::DrawOverflowButton(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect,
int state)
{
if ( m_themed )
{
RECT r;
wxCopyRectToRECT(rect, r);
wxUxThemeHandle hTheme(wnd, L"Rebar");
int chevState;
if ( state & wxAUI_BUTTON_STATE_PRESSED )
chevState = CHEVS_PRESSED;
else if ( state & wxAUI_BUTTON_STATE_HOVER )
chevState = CHEVS_HOT;
else
chevState = CHEVS_NORMAL;
wxUxThemeEngine::Get()->DrawThemeBackground(
hTheme,
GetHdcOf(dc.GetTempHDC()),
(m_flags & wxAUI_TB_VERTICAL) ? RP_CHEVRONVERT : RP_CHEVRON,
chevState,
&r,
NULL);
}
else
wxAuiGenericToolBarArt::DrawOverflowButton(dc, wnd, rect, state);
}
示例9: wxCopyRectToRECT
void wxTaskBarButtonImpl::SetThumbnailClip(const wxRect& rect)
{
m_thumbnailClipRect = rect;
RECT rc;
wxCopyRectToRECT(rect, rc);
m_taskbarList->SetThumbnailClip(m_parent->GetHWND(), rect.IsEmpty() ? NULL : &rc);
}
示例10: GetPageSize
WXHBRUSH wxNotebook::QueryBgBitmap()
{
wxRect r = GetPageSize();
if ( r.IsEmpty() )
return 0;
wxUxThemeHandle theme(this, L"TAB");
if ( !theme )
return 0;
RECT rc;
wxCopyRectToRECT(r, rc);
WindowHDC hDC(GetHwnd());
wxUxThemeEngine::Get()->GetThemeBackgroundExtent
(
theme,
(HDC) hDC,
9 /* TABP_PANE */,
0,
&rc,
&rc
);
MemoryHDC hDCMem(hDC);
CompatibleBitmap hBmp(hDC, rc.right, rc.bottom);
SelectInHDC selectBmp(hDCMem, hBmp);
if ( !DoDrawBackground((WXHDC)(HDC)hDCMem) )
return 0;
return (WXHBRUSH)::CreatePatternBrush(hBmp);
}
示例11: wxCHECK_RET
void
wxRendererXP::DoDrawButtonLike(HTHEME htheme,
int part,
wxDC& dc,
const wxRect& rect,
int flags)
{
wxCHECK_RET( dc.GetImpl(), wxT("Invalid wxDC") );
wxRect adjustedRect = dc.GetImpl()->MSWApplyGDIPlusTransform(rect);
RECT r;
wxCopyRectToRECT(adjustedRect, r);
// the base state is always 1, whether it is PBS_NORMAL,
// {CBS,RBS}_UNCHECKEDNORMAL or CBS_NORMAL
int state = 1;
// XBS_XXX is followed by XBX_XXXHOT, then XBS_XXXPRESSED and DISABLED
enum
{
NORMAL_OFFSET,
HOT_OFFSET,
PRESSED_OFFSET,
DISABLED_OFFSET,
STATES_COUNT
};
// in both RBS_ and CBS_ enums CHECKED elements are offset by 4 from base
// (UNCHECKED) ones and MIXED are offset by 4 again as there are all states
// from the above enum in between them
if ( flags & wxCONTROL_CHECKED )
state += STATES_COUNT;
else if ( flags & wxCONTROL_UNDETERMINED )
state += 2*STATES_COUNT;
if ( flags & wxCONTROL_DISABLED )
state += DISABLED_OFFSET;
else if ( flags & wxCONTROL_PRESSED )
state += PRESSED_OFFSET;
else if ( flags & wxCONTROL_CURRENT )
state += HOT_OFFSET;
// wxCONTROL_ISDEFAULT flag is only valid for push buttons
else if ( part == BP_PUSHBUTTON && (flags & wxCONTROL_ISDEFAULT) )
state = PBS_DEFAULTED;
wxUxThemeEngine::Get()->DrawThemeBackground
(
htheme,
GetHdcOf(dc.GetTempHDC()),
part,
state,
&r,
NULL
);
}
示例12: wxCopyRectToRECT
bool wxListBox::RefreshItem(size_t n)
{
wxRect rect;
if ( !GetItemRect(n, rect) )
return false;
RECT rc;
wxCopyRectToRECT(rect, rc);
return ::InvalidateRect((HWND)GetHWND(), &rc, FALSE) == TRUE;
}
示例13: hTheme
void ModernDockArt::DrawPaneButton(wxDC& dc,
wxWindow* window,
int button,
int button_state,
const wxRect& _rect,
wxAuiPaneInfo& pane)
{
bool usingTheme = false;
#ifdef __WXMSW__
#if wxUSE_UXTHEME
if (wxUxThemeEngine::Get())
{
wxUxThemeHandle hTheme(m_win, L"WINDOW");
if (hTheme)
{
usingTheme = true;
// Get the real button position (compensating for borders)
//const wxRect rect(_rect.x, _rect.y+m_button_border_size, m_button_size, m_button_size);
const unsigned int ypos = _rect.y + (_rect.height/2) - (m_button_size/2); // center vertically
const wxRect rect(_rect.x, ypos, m_real_button_size, m_real_button_size);
// Draw the themed close button
RECT rc;
wxCopyRectToRECT(rect, rc);
int state = 0;
switch (button_state) {
case wxAUI_BUTTON_STATE_NORMAL:
state = 1; // CBS_NORMAL
break;
case wxAUI_BUTTON_STATE_HOVER:
state = 2; // CBS_HOT
break;
case wxAUI_BUTTON_STATE_PRESSED:
state = 3; // CBS_PUSHED
break;
default:
wxASSERT_MSG(false, wxT("Unknown state"));
}
wxUxThemeEngine::Get()->DrawThemeBackground(hTheme, GetHdcOf(dc), 19 /*WP_SMALLCLOSEBUTTON*/,
state, &rc, NULL);
}
}
#endif // wxUSE_UXTHEME
#endif // __WXMSW__
// Fallback to default closebutton if themes are not enabled
if (!usingTheme) wxAuiDefaultDockArt::DrawPaneButton(dc, window, button, button_state, _rect, pane);
}
示例14: theme
bool wxNotebook::DoDrawBackground(WXHDC hDC, wxWindow *child)
{
wxUxThemeHandle theme(child ? child : this, L"TAB");
if ( !theme )
return false;
// get the notebook client rect (we're not interested in drawing tabs
// themselves)
wxRect r = GetPageSize();
if ( r.IsEmpty() )
return false;
RECT rc;
wxCopyRectToRECT(r, rc);
// map rect to the coords of the window we're drawing in
if ( child )
::MapWindowPoints(GetHwnd(), GetHwndOf(child), (POINT *)&rc, 2);
// we have the content area (page size), but we need to draw all of the
// background for it to be aligned correctly
wxUxThemeEngine::Get()->GetThemeBackgroundExtent
(
theme,
(HDC) hDC,
9 /* TABP_PANE */,
0,
&rc,
&rc
);
wxUxThemeEngine::Get()->DrawThemeBackground
(
theme,
(HDC) hDC,
9 /* TABP_PANE */,
0,
&rc,
NULL
);
return true;
}
示例15: wxCopyRectToRECT
void wxAuiMSWTabArt::DrawBackground(wxDC& dc,
wxWindow* wnd,
const wxRect& rect)
{
if ( !IsThemed() )
{
wxAuiGenericTabArt::DrawBackground(dc, wnd, rect);
return;
}
int borderHeight = 2;
wxRect drawRect = rect;
drawRect.height -= borderHeight;
// Draw background
dc.SetBrush(wxBrush(wnd->GetBackgroundColour()));
dc.SetPen(*wxTRANSPARENT_PEN);
dc.DrawRectangle(drawRect);
// Draw top border
drawRect.y = drawRect.height;
drawRect.height = borderHeight + 2;
drawRect.Inflate(1, 0);
RECT r;
wxCopyRectToRECT(drawRect, r);
wxUxThemeHandle hTheme(wnd, L"TAB");
::DrawThemeBackground(
hTheme,
GetHdcOf(dc.GetTempHDC()),
TABP_PANE,
0,
&r,
NULL);
}