2013-11-22 6 views
1

내 질문은 다음과 유사합니다 win32 : display editbox with black color in text area on windows mobile 5MFC : 전체 editBox의 배경색을 변경하려면 어떻게해야합니까?

내가 위의 링크에서 하나 사용할 수있는 동일한 해결책이없는 MFC를 사용하고 그러나.

편집 상자의 텍스트 뒤에있는 배경뿐만 아니라 전체 배경의 배경색을 어떻게 변경합니까?

아래 코드는 편집 상자의 전체 배경이 아닌 텍스트 뒤의 배경 만 변경합니다.

HBRUSH CGadgetStandardDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{ 
    HBRUSH hbr = CStandardDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
    pDC->SetBkColor(RGB(255,255,255)); 

    return hbr; 
} 
+0

'OnEraseBkgnd'를 재정 의하여 도움이 될 수 있습니다. –

+0

나는 그것이가는 좋은 방향 인 것처럼 느낀다. 그러나 나는 진행하는 법을 모른다. .. – CodeDoctorJL

답변

6

SetBkColor를 호출하는 것 외에도 원하는 배경색의 HBRUSH를 반환해야합니다.

m_brBack.CreateSolidBrush(RGB(0, 255, 0)); 

을 그리고 관심의 제어를 요구하는 브러시를 돌려 : 그래서 (대화 생성자에서, 말) 이전 브러시를 만들

HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
if (pWnd->GetDlgCtrlID() == IDC_EDIT2) 
{ 
    pDC->SetBkColor(RGB(0,255,0)); 
    hbr = m_brBack; 
} 
0

아래처럼 버튼 자원 이름 바꾸기가.

CButton m_StopButtonto; 

변경

CMFCButton m_StopButton; 

몇 가지 눈에 보이는 기능
// Set the background color for the button text. 
    m_StopButton.SetFaceColor(RGB(255,0,0),true); 
    m_StopButton.SetTextColor(RGB(0,0,255)); 
    // Set the tooltip of the button. 
    m_StopButton.SetTooltip(_T("This is my Stop Button!")); 

나는 버튼이 솔루션을 시도하고 나를 위해 일했다. 다른 구성 요소에서도 작동 할 것입니다.

관련 문제