API中怎样设置edit中文字的字体和颜色,我用
                           HWND hwndedit;
hwndedit = GetDlgItem(hwnd,IDC_EDITtext);
hdc = GetDC(hwndedit);
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.lpCustColors = &crf;
cc.Flags = CC_FULLOPEN;
ChooseColor(&cc);
SetBkMode(hdc,TRANSPARENT);
SetTextColor(hdc,cc.rgbResult);
TextOut(hdc,0,0,TEXT("hello"),strlen("hello"));
ReleaseDC(hwndedit,hdc);
虽然没有错误,但在edit里没有内容

解决方案 »

  1.   

    不要忙着说你的代码不起作用,Edit会不断的刷新(如果窗口需要重绘的话),所以把你的代码放在一个循环执行的函数里面试试
      

  2.   

    WM_CTLCOLOR(..)
    OnCtlColor()
    pDC->SetTextColor
    pDC_SetBkMode
    ...
      

  3.   

    我现在把字体设置成功了,通过sendmessage函数,但颜色还有问题,继续努力吧,谢谢你们的答案喽
      

  4.   

    例子:
    CSelEdit::CSelEdit()
    {
    m_bHasFont=m_FontBold.CreateFont(32, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE
            , ANSI_CHARSET, OUT_TT_PRECIS, CLIP_TT_ALWAYS, PROOF_QUALITY
            , VARIABLE_PITCH | FF_SWISS, TEXT("SANS SERIF"));
    }CSelEdit::~CSelEdit()
    {
    if(m_bHasFont) DeleteObject(m_FontBold);
    }
    //WM_CTLCOLOR
    HBRUSH CDrawEditDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    // TODO: Change any attributes of the DC here
    if((CTLCOLOR_EDIT==nCtlColor) && (*pWnd == m_SelEdit))
    {
    pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(0xFF);//red
    return (HBRUSH)m_pbrEd->m_hObject;
    }
    return hbr;
    }