本文整理汇总了C++中CButtonUI::SetHotImage方法的典型用法代码示例。如果您正苦于以下问题:C++ CButtonUI::SetHotImage方法的具体用法?C++ CButtonUI::SetHotImage怎么用?C++ CButtonUI::SetHotImage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CButtonUI
的用法示例。
在下文中一共展示了CButtonUI::SetHotImage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IMPL_LUA_FUNC
IMPL_LUA_FUNC(LuaCButtonUI, SetHotImage)
{
try
{
CButtonUI* self;
self = static_cast<CButtonUI*>(LuaStatic::CheckUserData(l, 1));
CDuiString pstrText;
lua_op_t<CDuiString>::lua_to_value(l, 2, pstrText);
self->SetHotImage(pstrText);
return 0;
}
catch (...)
{
DuiException(_T("LuaCButtonUI::SetHotImage"));
return 0;
}
}
示例2: InitWindow
void CQuizWnd::InitWindow()
{
assert(m_songInfo);
CenterWindow();
auto& quizInfo = m_songInfo->GetQuizInfo();
// show title
CTextUI* title = static_cast<CTextUI*>(m_PaintManager.FindControl(L"title"));
if (!title) return;
title->SetText(quizInfo.get_title().c_str());
// show questoins button
CHorizontalLayoutUI* questions_btn = static_cast<CHorizontalLayoutUI*>(m_PaintManager.FindControl(L"questions_btn"));
if (!questions_btn) return;
wchar_t ndx[3] = L"1";
auto cnt = quizInfo.get_quiz_count();
static const int FIXED_LENGTH = 64;
SIZE sz = { 1,1 };
for (auto i = 0; i < cnt; i++) {
CButtonUI* btn = new CButtonUI();
btn->SetName(((wstring)BTN_QUESTION_PREFIX + ndx).c_str());
btn->SetFloat();
btn->SetFixedXY(sz);
btn->SetFixedHeight(FIXED_LENGTH);
btn->SetFixedWidth(FIXED_LENGTH);
btn->SetNormalImage(((wstring)NORMAL_PREFIX + ndx + POSTFIX_PNG).c_str());
btn->SetFocusedImage(((wstring)NORMAL_PREFIX + ndx + POSTFIX_PNG).c_str());
btn->SetHotImage(((wstring)HOT_PREFIX + ndx + POSTFIX_PNG).c_str());
btn->SetPushedImage(((wstring)HOT_PREFIX + ndx + POSTFIX_PNG).c_str());
questions_btn->Add(btn);
ndx[0]++;
sz.cx += FIXED_LENGTH + 1;
if (ndx[0] == 58) {
ndx[0] = L'1';
ndx[1] = L'0';
}
}
// show doen button
if (cnt > 0) {
CButtonUI* btn = new CButtonUI();
btn->SetName(((wstring)BTN_QUESTION_PREFIX + DONE).c_str());
btn->SetFloat();
btn->SetFixedXY(sz);
btn->SetFixedHeight(FIXED_LENGTH);
btn->SetFixedWidth(FIXED_LENGTH);
btn->SetNormalImage(((wstring)NORMAL_PREFIX + DONE + POSTFIX_PNG).c_str());
btn->SetFocusedImage(((wstring)NORMAL_PREFIX + DONE + POSTFIX_PNG).c_str());
btn->SetHotImage(((wstring)HOT_PREFIX + DONE + POSTFIX_PNG).c_str());
btn->SetPushedImage(((wstring)HOT_PREFIX + DONE + POSTFIX_PNG).c_str());
questions_btn->Add(btn);
}
// init question container
CActiveXUI* question = static_cast<CActiveXUI*>(m_PaintManager.FindControl(_T("question")));
if (!question) return;
question->SetDelayCreate(false); // 相当于界面设计器里的DelayCreate属性改为FALSE,在duilib自带的FlashDemo里可以看到此属性为TRUE
question->CreateControl(CLSID_WebBrowser); // 相当于界面设计器里的Clsid属性里填入{8856F961-340A-11D0-A96B-00C04FD705A2},建议用CLSID_WebBrowser,如果想看相应的值,请见<ExDisp.h>
question->GetControl(IID_IWebBrowser2, (void**)&m_question);
assert(m_question);
// show 1st question
ShowQuiz(1);
}
示例3: show_result
void CQuizWnd::show_result()
{
wchar_t ndx[3] = L"1";
auto& quizInfo = m_songInfo->GetQuizInfo();
size_t cnt = quizInfo.get_quiz_count();
size_t right_cnt = 0;
std::wstring image_right = L"New\\勾.png";
std::wstring image_wrong = L"New\\叉.png";
for (size_t i = 0; i < cnt; i++) {
auto quiz = quizInfo.get_quiz(i);
if (quiz) {
CButtonUI* btn = static_cast<CButtonUI*>(m_PaintManager.FindControl(((wstring)BTN_QUESTION_PREFIX + ndx).c_str())); assert(btn);
if (quiz->get_answer() == quiz->get_user_answer()) {
btn->SetNormalImage(image_right.c_str());
btn->SetFocusedImage(image_right.c_str());
btn->SetHotImage(image_right.c_str());
btn->SetPushedImage(image_right.c_str());
right_cnt++;
} else {
btn->SetNormalImage(image_wrong.c_str());
btn->SetFocusedImage(image_wrong.c_str());
btn->SetHotImage(image_wrong.c_str());
btn->SetPushedImage(image_wrong.c_str());
}
ndx[0]++;
if (ndx[0] == 58) {
ndx[0] = L'1';
ndx[1] = L'0';
}
}
}
// remove options
CVerticalLayoutUI* options = static_cast<CVerticalLayoutUI*>(m_PaintManager.FindControl(L"options"));
if (!options)return; options->RemoveAll();
// show result
std::wstring html_path = m_songInfo->get_tmp_path() + L"\\" + m_songInfo->get_id() + L"\\result.html";
std::wofstream out(html_path); if (!out.is_open())return;
std::wstringstream ss;
ss << L"<HTML>"
L"<head>"
L"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"
L"<title>lyric</title>"
L"</head>"
L"<BODY SCROLL=NO align='center' bgcolor='#FFFFBF' topmargin='2' leftmargin='2'>"
L"<h3 align='CENTER'>"
L"<font size='5' color=#FF8600>You have " << right_cnt << L" out of " << cnt << L" right answers." << L"</font>"
L"</h3>";
if (right_cnt < cnt) {
ss << L"<h4 align='CENTER'"
L"<font size='3' color=#000000>You missed questions. Read the book again or try a diffrent book.</font>"
L"</h4>"
L"</BODY>"
L"</HTML>";
} else {
ss << L"<h4 align='CENTER'"
L"<font size='3' color=#000000>You passed this quiz. Congratulations!</font>"
L"</h4>"
L"</BODY>"
L"</HTML>";
}
std::wstring w = ss.str();
std::string u;
utf8::utf16to8(w.begin(), w.end(), std::back_inserter(u));
out << u.c_str();
out.close();
m_question->Navigate(const_cast<wchar_t*>(html_path.c_str()), nullptr, nullptr, nullptr, nullptr);
// save total score
CConfig::get_instance()->add_score(right_cnt * 10);
// show score wnd
CScoreWnd* wnd = new CScoreWnd(L"ScoreWnd.xml");
wnd->Create(m_hWnd, L"ScoreWnd", UI_WNDSTYLE_DIALOG, WS_EX_WINDOWEDGE);
wnd->ShowModal();
delete wnd;
PostMessage(WM_CLOSE);
}