mfc_calculator_1 - 8BitsCoding/RobotMentor GitHub Wiki
ListBox๋ฅผ ๊ธฐ๋ฐ์ผ๋ก CheckListBox๋ฅผ ์์ฑํด์ ์ด๋ค.
๋ฐ๋ผ์ ListBox๋ฅผ ์์ฑ ํ OwnerDraw๋ฅผ Fixed๋ก ๋๋ค.
๋ฆฌ์คํธ๋ฐ์ค ์ฐํด๋ฆญ -> ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ ๋ง๋ฒ์ฌ ์์ -> LBN_CHANGE ์ถ๊ฐ
BOOL CMFCApplication1Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// ์ด ๋ํ ์์์ ์์ด์ฝ์ ์ค์ ํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฃผ ์ฐฝ์ด ๋ํ ์์๊ฐ ์๋ ๊ฒฝ์ฐ์๋
// ํ๋ ์์ํฌ๊ฐ ์ด ์์
์ ์๋์ผ๋ก ์ํํฉ๋๋ค.
SetIcon(m_hIcon, TRUE); // ํฐ ์์ด์ฝ์ ์ค์ ํฉ๋๋ค.
SetIcon(m_hIcon, FALSE); // ์์ ์์ด์ฝ์ ์ค์ ํฉ๋๋ค.
// TODO: ์ฌ๊ธฐ์ ์ถ๊ฐ ์ด๊ธฐํ ์์
์ ์ถ๊ฐํฉ๋๋ค.
wchar_t * p_item_name[MAX_ITEM_COUNT] = {
L"์๋ฉ๋ฆฌ์นด๋
ธ 1900์" , L"์นดํ๋ผ๋ผ 2500์",
L"์นดํ๋ชจ์นด 2800์", L"์นด๋ผ๋ฉ๋ง๋ผ์๋ 3200์",
L"์์คํ๋ ์ 1800์",L"๋ฐ๋๋ผ๋ผ๋ผ 3500์",
L"์นดํธ์น๋
ธ 3300์",L"๋น์๋ 3500์"
};
int price[8] = {1900, 2500, 2800, 3200, 1800, 3500, 3300, 3500};
m_item_list.SubclassDlgItem(IDC_ITEM_LIST, this);
m_item_list.SetItemHeight(0, 24);
for (int i = 0; i < MAX_ITEM_COUNT; i++) {
m_item_list.InsertString(i, p_item_name[i]);
m_item_list.SetItemData(i, price[i]);
}
return TRUE; // ํฌ์ปค์ค๋ฅผ ์ปจํธ๋กค์ ์ค์ ํ์ง ์์ผ๋ฉด TRUE๋ฅผ ๋ฐํํฉ๋๋ค.
}
void CMFCApplication1Dlg::OnLbnSelchangeItemList()
{
int count = m_item_list.GetCount();
int total_price = 0;
for (int i = 0; i < count; i++) {
if (m_item_list.GetCheck(i)) {
total_price += m_item_list.GetItemData(i);
}
}
SetDlgItemInt(IDC_TOTAL_PRICE_EDIT, total_price);
}