On Tuesday, 16 March 2021 at 17:26:01 UTC, Vinod K Chandran wrote:
Hi all,
I am creating a Button class with Win32 API functions. So far so good. I am using NM_CUSTOMDRAW message to change the back color of my buttons. It's really easy to change the back color in this way. But I can't change the text color of my button. This is my pseudo code.
```
uint setBtnBackColor( LPNMCUSTOMDRAW  lp) {

    SetTextColor(lp.hdc, RGB(102, 255, 51) )    // Not working

    if lp.uItemState & CDIS_SELECTED { //----------- btn clicked
        // Change back color using SelectObject & FillRect
        // Its Working. No probs.
        }
    elseif lp.uItemState & CDIS_HOT { //------------Mouse over
        // Change back color using SelectObject & FillRect
        // Its Working. No probs.
        }
    else { // ---------Default state of button
         // Change back color using SelectObject & FillRect
        // Its Working. No probs.
        }
    return CDRF_SKIPDEFAULT
}
```
What is wrong in my approach ?

I'm afraid you have to do everything yourself, including draw the text and call SetTextColor() on the associated HDC (that you have used in the DrawText() for exe)

Reply via email to