win32sdk编程如何改变一个static控件上文字的字体和颜色

解决方案 »

  1.   

    SetFont();
    这个函数是CStatic基类的成员函数
      

  2.   

    如果你有WINDOWS程序设计这本书的话
    第九章有的
      

  3.   

    先创建自己的字体,然后用SetFont
    记得在SetFont后不要把字体删除了,要保留,直到使用字体的控件销毁为止。
      

  4.   

    先创建自己的字体,然后用SetFont
    记得在SetFont后不要把字体删除了,要保留,直到使用字体的控件销毁为止。
      

  5.   

    先创建自己的字体,然后用SetFont
    记得在SetFont后不要把字体删除了,要保留,直到使用字体的控件销毁为止。
      

  6.   

    用setfont改字体处理WM_CTLCOLORSTATIC修改颜色
      

  7.   

    其实还有
    WM_CTLCOLOREDIT
    WM_CTLCOLORBTN
    WM_CTLCOLOR*****       反正有一些   
    在msdn里找,有详细使用说明
      

  8.   

    谁能告诉我那里有《WINDOWS程序设计》这本书的源码下载
      

  9.   

    你不要把该静态文本的ID设为ID—STATIC,换一个,给它赋一个变量,CStatic和CString型的各一个。再getwindowrect(注意坐标转换),settextcolor,setbkcolor,textout,应该可以。
      

  10.   

    我先的说法不正确,应该是像下面这样作:
    关于对话框中要处理的控件的ID是IDC_MYSTATIC// “关于”框的消息处理程序。
    LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    static HFONT hfont_static; // 自定义字体的句柄
    static HWND hwnd_static; // Static 控件的句柄 switch (message)
    {
    case WM_INITDIALOG:
    // 建立自定义字体
    LOGFONT lgf;
    GetObject(GetStockObject(DEFAULT_GUI_FONT), sizeof(lgf), &lgf);
    lgf.lfWeight = FW_BOLD;
    hfont_static = CreateFontIndirect(&lgf);
    // 设置字体
    hwnd_static = GetDlgItem(hDlg, IDC_MYSTATIC); //***
    SendMessage(hwnd_static, WM_SETFONT, (WPARAM)hfont_static, (LPARAM)TRUE); //***
    return TRUE; case WM_CTLCOLORSTATIC:
    // 改变文本颜色和背景颜色
    if((HWND)lParam == hwnd_static)
    {
    SetTextColor((HDC)wParam, 0xff0000); //***
    }
    else
    {
    SetTextColor((HDC)wParam, GetSysColor(COLOR_WINDOWTEXT));
    }
    SetBkColor((HDC)wParam, GetSysColor(COLOR_BTNFACE));
    SetWindowLong(hDlg, DWL_MSGRESULT, (LONG)TRUE);
    return (LRESULT)GetSysColorBrush(COLOR_BTNFACE); case WM_COMMAND:
    if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
    {
    DeleteObject(hfont_static);
    EndDialog(hDlg, LOWORD(wParam)); // 销毁自定义字体
    return TRUE;
    }
    break;
    }
    return FALSE;
    }