Ensemble statique de la couleur du texte Win32

Je fais une dll qui contrôle une boîte de dialogue. Je voudrais obtenir une certaine zone pour avoir le texte en rouge. Ce code ne compile, mais l'effet n'est pas visible. Ici est l'endroit où les dialogProc est fait:

LRESULT CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
    case WM_INITDIALOG:     
        CheckDlgButton(hDlg, IDC_CHECK, FALSE);
        EnableWindow(GetDlgItem(hDlg, IDOK), FALSE);
        return TRUE;

    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case IDC_CHECK:
            if (IsDlgButtonChecked(hDlg, IDC_CHECK))
            {
                EnableWindow(GetDlgItem(hDlg, IDOK), TRUE);
                EnableWindow(GetDlgItem(hDlg, IDCANCEL), FALSE);
            }
            else
            {
                EnableWindow(GetDlgItem(hDlg, IDOK), FALSE);
                EnableWindow(GetDlgItem(hDlg, IDCANCEL), TRUE);
            }
            break;
        case IDOK:
            {           
                EndDialog(hDlg, TRUE);
                return FALSE;
            }
        case IDCANCEL:
            {               
                EndDialog(hDlg, FALSE);
                return FALSE;
            }
        case WM_CTLCOLORSTATIC:
            //Set the colour of the text for our URL
            if ((HWND)lParam == GetDlgItem(hDlg,IDC_WARNING)) 
            {
                //we're about to draw the static
                //set the text colour in (HDC)lParam
                SetBkMode((HDC)wParam,TRANSPARENT);
                SetTextColor((HDC)wParam, RGB(255,0,0));
                return (BOOL)CreateSolidBrush (GetSysColor(COLOR_MENU));
            }
    return TRUE;
        }
    }
    return FALSE;
}
êtes-vous sûr que votre bloc de code est exécuté?
L'instruction du cas, mais je pense que c'est plus basé sur l'interaction de l'utilisateur, tels que les boutons de clic. Je ne suis pas trop sûr de la façon de définir une couleur de façon statique sur l'API Win32. Je suis plus habitué à C++ où il y avait un attribut de couleur sur l'objet.
Eh bien, le bleu est maintenant de travail, j'ai maintenant un fond blanc partout!
Tous les décors sont d'accord, sauf pour l'icône de contrôle. Il est transparent. Pas trop sûr, pourquoi ce contrôle a maintenant un fond blanc!
Ouais, j'ai réalisé que plus tard, c'est la façon dont je l'ai eu à travailler, je l'ai déplacé hors de ce bloc, je viens de le mettre dans le mauvais endroit par hasard! Mais, je ne peux pas obtenir mon icône pour avoir un fond transparent maintenant. J'ai déplacé la partie transparente à l'extérieur de la si, donc, tout est transparent, puisque, avant le texte en noir avait un fond blanc, mais je ne pouvais pas l'icône pour avoir un fond transparent. L'IUt a été avant ce travail.

OriginalL'auteur Jon Weinraub | 2009-10-06