本文整理汇总了C++中StringStorage::toUnicodeString方法的典型用法代码示例。如果您正苦于以下问题:C++ StringStorage::toUnicodeString方法的具体用法?C++ StringStorage::toUnicodeString怎么用?C++ StringStorage::toUnicodeString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringStorage
的用法示例。
在下文中一共展示了StringStorage::toUnicodeString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawItem
void ImagedButton::drawItem(LPDRAWITEMSTRUCT dis)
{
HDC dc = dis->hDC;
BOOL isPressed = (dis->itemState & ODS_SELECTED);
BOOL isFocused = (dis->itemState & ODS_FOCUS);
BOOL isDisabled = (dis->itemState & ODS_DISABLED);
BOOL drawFocusRect = !(dis->itemState & ODS_NOFOCUSRECT);
RECT itemRect = dis->rcItem;
SetBkMode(dc, TRANSPARENT);
if (m_isUsingTheme) {
DWORD state = (isPressed) ? PBS_PRESSED : PBS_NORMAL;
if (state == PBS_NORMAL) {
if (isFocused) {
state = PBS_DEFAULTED;
}
if (m_mouseOver) {
state = PBS_HOT;
}
if (isDisabled) {
state = PBS_DISABLED;
}
}
ThemeLib::DrawThemeBackground(m_theme, dc, BP_PUSHBUTTON, state, &itemRect, NULL);
} else {
if (isFocused) {
HBRUSH br = CreateSolidBrush(RGB(0,0,0));
FrameRect(dc, &itemRect, br);
InflateRect(&itemRect, -1, -1);
DeleteObject(br);
}
HBRUSH background = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
FillRect(dc, &itemRect, background);
DeleteObject(background);
if (isPressed) {
HBRUSH shadow = CreateSolidBrush(GetSysColor(COLOR_BTNSHADOW));
FrameRect(dc, &itemRect, shadow);
DeleteObject(shadow);
} else {
UINT uState = DFCS_BUTTONPUSH |
((m_mouseOver) ? DFCS_HOT : 0) |
((isPressed) ? DFCS_PUSHED : 0);
DrawFrameControl(dc, &itemRect, DFC_BUTTON, uState);
}
}
StringStorage title;
getText(&title);
RECT captionRect = dis->rcItem;
TEXTMETRIC metric;
GetTextMetrics(dc, &metric);
RECT imageRect;
calcRect(&itemRect, isPressed == TRUE, 0, metric.tmHeight,
m_iconWidth, m_iconHeight, &captionRect, &imageRect);
if (m_icon != NULL) {
drawIcon(&dc, &imageRect, isPressed == TRUE, isDisabled == TRUE);
}
if (!title.isEmpty()) {
if (isPressed && !m_isUsingTheme) {
OffsetRect(&captionRect, 1, 1);
}
if (m_isUsingTheme) {
WCHAR *unicodeString = new WCHAR[title.getLength() + 1];
size_t len = title.getLength();
title.toUnicodeString(unicodeString, &len);
DWORD state = PBS_NORMAL;
if (isDisabled) {
state = PBS_DISABLED;
}
ThemeLib::DrawThemeText(m_theme, dc, BP_PUSHBUTTON, state,
unicodeString, len,
DT_CENTER | DT_VCENTER | DT_SINGLELINE,
0, &captionRect);
delete[] unicodeString;
} else {
SetBkMode(dc, TRANSPARENT);
if (isDisabled) {
OffsetRect(&captionRect, 1, 1);
SetTextColor(dc, ::GetSysColor(COLOR_3DHILIGHT));
DrawText(dc, title.getString(), -1, &captionRect, DT_WORDBREAK | DT_CENTER);
OffsetRect(&captionRect, -1, -1);
SetTextColor(dc, ::GetSysColor(COLOR_3DSHADOW));
DrawText(dc, title.getString(), -1, &captionRect, DT_WORDBREAK | DT_CENTER);
} else {
//.........这里部分代码省略.........