本文整理汇总了C++中wxDC::GetTempHDC方法的典型用法代码示例。如果您正苦于以下问题:C++ wxDC::GetTempHDC方法的具体用法?C++ wxDC::GetTempHDC怎么用?C++ wxDC::GetTempHDC使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxDC
的用法示例。
在下文中一共展示了wxDC::GetTempHDC方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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);
}
}
示例2: InitSizes
void wxAuiMSWTabArt::InitSizes(wxWindow* wnd, wxDC& dc)
{
SIZE uxSize;
// Borrow close button from tooltip (best fit on various backgrounds)
wxUxThemeHandle hTooltipTheme(wnd, L"Tooltip");
::GetThemePartSize(hTooltipTheme, GetHdcOf(dc.GetTempHDC()),
TTP_CLOSE, 0, NULL, TS_TRUE, &uxSize);
m_closeBtnSize.Set(uxSize.cx, uxSize.cy);
wxUxThemeHandle hTabTheme(wnd, L"Tab");
::GetThemePartSize(hTabTheme, GetHdcOf(dc.GetTempHDC()),
TABP_TABITEM, 0, NULL, TS_TRUE, &uxSize);
m_tabSize.Set(uxSize.cx, uxSize.cy);
}
示例3: DrawBorder
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);
}
示例4: 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);
}
示例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::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
);
}
示例8: DrawOverflowButton
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: DrawGauge
void wxRendererXP::DrawGauge(wxWindow* win,
wxDC& dc,
const wxRect& rect,
int value,
int max,
int flags)
{
wxUxThemeHandle hTheme(win, L"PROGRESS");
if ( !hTheme )
{
m_rendererNative.DrawGauge(win, dc, rect, value, max, flags);
return;
}
RECT r;
wxCopyRectToRECT(rect, r);
wxUxThemeEngine::Get()->DrawThemeBackground(
hTheme,
GetHdcOf(dc.GetTempHDC()),
PP_BAR,
0,
&r,
NULL);
RECT contentRect;
wxUxThemeEngine::Get()->GetThemeBackgroundContentRect(
hTheme,
GetHdcOf(dc.GetTempHDC()),
PP_BAR,
0,
&r,
&contentRect);
contentRect.right = contentRect.left +
wxMulDivInt32(contentRect.right - contentRect.left,
value,
max);
wxUxThemeEngine::Get()->DrawThemeBackground(
hTheme,
GetHdcOf(dc.GetTempHDC()),
PP_CHUNK,
0,
&contentRect,
NULL);
}
示例10: if
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
);
}
示例11: DrawFocusRect
void wxRendererMSWBase::DrawFocusRect(wxWindow * WXUNUSED(win),
wxDC& dc,
const wxRect& rect,
int WXUNUSED(flags))
{
RECT rc;
wxCopyRectToRECT(rect, rc);
::DrawFocusRect(GetHdcOf(dc.GetTempHDC()), &rc);
}
示例12: DrawBackground
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);
}
示例13: DrawGripper
void wxAuiMSWToolBarArt::DrawGripper(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect)
{
if ( m_themed )
{
RECT r;
wxCopyRectToRECT(rect, r);
wxUxThemeHandle hTheme(wnd, L"Rebar");
wxUxThemeEngine::Get()->DrawThemeBackground(
hTheme,
GetHdcOf(dc.GetTempHDC()),
(m_flags & wxAUI_TB_VERTICAL) ? RP_GRIPPERVERT : RP_GRIPPER,
0,
&r,
NULL);
}
else
wxAuiGenericToolBarArt::DrawGripper(dc, wnd, rect);
}
示例14: DrawBackground
void wxAuiMSWToolBarArt::DrawBackground(
wxDC& dc,
wxWindow* wnd,
const wxRect& rect)
{
if ( m_themed )
{
RECT r;
wxCopyRectToRECT(rect, r);
wxUxThemeHandle hTheme(wnd, L"Rebar");
wxUxThemeEngine::Get()->DrawThemeBackground(
hTheme,
GetHdcOf(dc.GetTempHDC()),
RP_BACKGROUND,
0,
&r,
NULL);
}
else
wxAuiGenericToolBarArt::DrawBackground(dc, wnd, rect);
}
示例15: GetCollapseButtonSize
wxSize wxRendererXP::GetCollapseButtonSize(wxWindow *win, wxDC& dc)
{
wxUxThemeHandle hTheme(win, L"TASKDIALOG");
wxUxThemeEngine* const te = wxUxThemeEngine::Get();
// EXPANDOBUTTON scales ugly if not using the correct size, get size from theme
if ( te->IsThemePartDefined(hTheme, TDLG_EXPANDOBUTTON, TDLGEBS_NORMAL) )
{
SIZE s;
te->GetThemePartSize(hTheme,
GetHdcOf(dc.GetTempHDC()),
TDLG_EXPANDOBUTTON,
TDLGEBS_NORMAL,
NULL,
TS_TRUE,
&s);
return wxSize(s.cx, s.cy);
}
else
return m_rendererNative.GetCollapseButtonSize(win, dc);
}