nim_duilib/examples/richlist/richlist_form.cpp

69 lines
1.4 KiB
C++
Raw Normal View History

2019-04-19 17:19:57 +08:00
#include "stdafx.h"
#include "richlist_form.h"
#include "item.h"
const std::wstring RichlistForm::kClassName = L"Basic";
RichlistForm::RichlistForm()
{
}
RichlistForm::~RichlistForm()
{
}
std::wstring RichlistForm::GetSkinFolder()
{
return L"richlist";
}
std::wstring RichlistForm::GetSkinFile()
{
return L"richlist.xml";
}
std::wstring RichlistForm::GetWindowClassName() const
{
return kClassName;
}
void RichlistForm::InitWindow()
{
list_ = dynamic_cast<ui::ListBox*>(FindControl(L"list"));
for (auto i = 0; i < 100; i++)
{
Item* item = new Item;
ui::GlobalManager::FillBoxWithCache(item, L"richlist/item.xml");
std::wstring img = L"icon.png";
std::wstring title = nbase::StringPrintf(L"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [%02d]", i + 1);
item->InitSubControls(img, title);
list_->Add(item);
}
// <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD><D0B5><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
list_->AttachSelect(nbase::Bind(&RichlistForm::OnSelected, this, std::placeholders::_1));
}
bool RichlistForm::OnSelected(ui::EventArgs* args)
{
int current = args->wParam;
int old = args->lParam;
auto message = nbase::StringPrintf(L"<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ %d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC>һ<EFBFBD><D2BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ %d", current, old);
ShowMsgBox(GetHWND(), MsgboxCallback(), message, false, L"<EFBFBD><EFBFBD>ʾ", false);
return true;
}
LRESULT RichlistForm::OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
PostQuitMessage(0L);
return __super::OnClose(uMsg, wParam, lParam, bHandled);
}