30/09/2018, 17:33
[C++] Đổi màu Editbox trong MFC?
Chào mọi người,
Mình đang có một vấn đề, mọi người cùng tìm giải pháp
Trong dialog MFC của mình, khi dialog đã hiện lên, mình muốn click vào 1 button thì cùng 1 lúc màu của vài (giả sử là 10) Editbox sẽ thay đổi.
Mình tìm hiểu, thì trong MFC họ dùng OnCtlColor. Tuy nhiên, để SetTextColor và SetBackColor cho 10 Editbox thì cần tới 20 biến members để set màu cho Editbox.
COLORREF m_TextColor, m_BkColor; //in header file.
HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
Switch (pWnd)
Case: IDC_EDIT_1:
// TODO: Change any attributes of the DC here
pDC->SetBkColor(m_BkColor1);
pDC->SetTextColor(m_TextColor1);
Case IDC_EDIT_2:
pDC->SetBkColor(m_BkColor2);
pDC->SetTextColor(m_TextColor2);
....
// TODO: Return a different brush if the default is not desired
return hbr;
}
Vậy có cách nào để thực hiện việc trên tối ưu hơn không?
Thanks,
AnhNT
Bài liên quan