mfc_EditCtrl_Color_1 - 8BitsCoding/RobotMentor GitHub Wiki
WM_CTLCOLOR λ©μμ§λ₯Ό ν΅ν΄μ μμμ λ³κ²½ν μ μλ€.
HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
int control_id = pWnd->GetDlgCtrlID();
if (control_id == IDC_EDIT1) {
pDC->SetTextColor(RGB(255, 0, 0));
pDC->SetBkColor(RGB(0, 0, 255));
}
return hbr;
}
// Dlg.h
HBRUSH mh_edit_bk_brush;
BOOL CMFCApplication1Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// μ΄ λν μμμ μμ΄μ½μ μ€μ ν©λλ€. μμ© νλ‘κ·Έλ¨μ μ£Ό μ°½μ΄ λν μμκ° μλ κ²½μ°μλ
// νλ μμν¬κ° μ΄ μμ
μ μλμΌλ‘ μνν©λλ€.
SetIcon(m_hIcon, TRUE); // ν° μμ΄μ½μ μ€μ ν©λλ€.
SetIcon(m_hIcon, FALSE); // μμ μμ΄μ½μ μ€μ ν©λλ€.
// TODO: μ¬κΈ°μ μΆκ° μ΄κΈ°ν μμ
μ μΆκ°ν©λλ€.
mh_edit_bk_brush = ::CreateSolidBrush(RGB(0, 0, 128));
SetDlgItemText(IDC_EDIT1, L"μλ
νμΈμ~");
return TRUE; // ν¬μ»€μ€λ₯Ό 컨νΈλ‘€μ μ€μ νμ§ μμΌλ©΄ TRUEλ₯Ό λ°νν©λλ€.
}
HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
int control_id = pWnd->GetDlgCtrlID();
if (control_id == IDC_EDIT1) {
pDC->SetTextColor(RGB(255, 0, 0));
pDC->SetBkColor(RGB(0, 0, 255));
return mh_edit_bk_brush;
}
return hbr;
}
void CMFCApplication1Dlg::OnDestroy()
{
CDialogEx::OnDestroy();
DeleteObject(mh_edit_bk_brush);
}
// Dlg.h
HBRUSH mh_edit_bk_brush;
HWND mh_old_focus = NULL;
HBRUSH CMFCApplication1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
int control_id = pWnd->GetDlgCtrlID();
//if (control_id == IDC_EDIT1) {
if (control_id >= IDC_EDIT1 && control_id <= IDC_EDIT6) {
pDC->SetTextColor(RGB(255, 0, 0));
HWND cur_focus = ::GetFocus();
if (cur_focus == pWnd->m_hWnd) {
// ν¬μ»€μ€κ° λ€μ΄μ€λ©΄ μμλ³κ²½
if (mh_old_focus != cur_focus) {
if(mh_old_focus!=NULL) ::InvalidateRect(mh_old_focus, NULL, FALSE);
mh_old_focus = cur_focus;
}
pDC->SetBkColor(RGB(0, 255, 0));
}
else
{
pDC->SetBkColor(RGB(0, 0, 255));
}
return mh_edit_bk_brush;
}
return hbr;
}