关于网友提出的“ API中怎样设置edit中文字的字体和颜色”问题疑问,本网通过在网上对“ API中怎样设置edit中文字的字体和颜色”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: API中怎样设置edit中文字的字体和颜色
描述: 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_CTLCOLOREDIT
解决方案3: 例子:
CSelEdit::CSelEdit()
{
m_bHasF />
, 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;
}
解决方案4: WM_CTLCOLOR(..)
OnCtlColor()
pDC->SetTextColor
pDC_SetBkMode
...
以上介绍了“ API中怎样设置edit中文字的字体和颜色”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2251861.html