MF C C ++ Как сделать фон Edit Control прозрачным? - PullRequest
0 голосов
/ 13 марта 2020

Я хочу сделать фон элемента редактирования прозрачным и изменить цвет текста на белый. Я могу сделать их оба с помощью этой функции, единственная проблема в том, что когда вы печатаете в редакторе, текст продолжает накладываться, для примера перейдите по ссылке. Я считаю, что проблема в NULL_BRUSH, что делает фон прозрачным, потому что если я изменяю только цвет текста, он работает нормально, к сожалению, мне нужны оба. Как я могу это сделать?

HBRUSH  CDlg::OnCtlColor(CDC* pDc, CWnd* pWnd, UINT nCtlColor){

HBRUSH hbr = NULL;  

switch (nCtlColor) {
case CTLCOLOR_EDIT:
    if (pWnd->GetDlgCtrlID() == editControl){
        pDc->SetBkMode(TRANSPARENT);
        pDc->SetBkColor(TRANSPARENT);
        pDc->SetTextColor(RGB(255, 255, 255));
        hbr = (HBRUSH)GetStockObject(NULL_BRUSH);
    }

    break;
default:
    hbr = CDialogEx::OnCtlColor(pDc, pWnd, nCtlColor);
}

return hbr;
}

...