一个关于SelectObject的问题
南安风语者 2006-06-29 03:55:30 我写了一个函数,当传入一个字符串后,可以根据设定的宽度让它自动换行
LONG CControlTestDlg::ModifyText( CString csInMsgText, LONG lnLabelW, CString& csOutMsgText)
{
CDC* pDc;
CWnd* pWnd;
CFont* pCf;
LONG lnMsgLen ;
LONG lnCntLen = 0;
LONG lnCntLine = 1;
lnMsgLen = csInMsgText.GetLength();
pWnd = GetDlgItem( IDC_STATICTEXT);
pDc = pWnd->GetDC();
pCf = pWnd->GetFont();
pDc->SelectObject( pCf);
for( LONG lnCnt = 0; lnCnt<lnMsgLen; lnCnt++)
{
.................
}
我在里面用了一句:pDc->SelectObject( pCf);当我把这句话去掉后,如果字体发生了改变,输出的字符却不行改变,如: 开始时,字符串“1234”的"4"后就会换行,可我把字体变大后,它还是在"4"后就会换行,我加上pDc->SelectObject( pCf)后就可以正常改变了.我虽然知道要加上这个,就是不太明白这里面的原理,特此请教各位高手!!!而且还有没有其它的方法???