win32 修改button的背景色

废话不多说
直接代码贴上

	case WM_INITDIALOG:
	{
		HWND hBn = GetDlgItem(hWnd, IDB_RES);
		SetWindowLong(hBn, GWL_STYLE, GetWindowLong(hBn, GWL_STYLE) | BS_OWNERDRAW);
	}
	return TRUE;
		break;
    case WM_CTLCOLORBTN :
 
        if ((HWND)lParam == GetDlgItem(hWnd, IDB_RES))
        {
            HWND hbn = (HWND)lParam;
            HDC hdc = (HDC)wParam;
            RECT rc;
            TCHAR text[64];
 
            GetWindowText(hbn, text, 63);
            GetClientRect(hbn, &rc);
            SetTextColor(hdc, RGB(255, 255, 255));
            SetBkMode(hdc, TRANSPARENT);
            DrawText(hdc, text, _tcslen(text), &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
 
            return (INT_PTR)CreateSolidBrush(RGB(0,0,255));
        }
        break;

你可能感兴趣的:(win,32,C++)