发布网友 发布时间:2022-05-24 21:48
共1个回答
热心网友 时间:2023-05-31 13:09
在下例中,要修改颜色的文本框对象ID为:IDC_EDIT。 HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if(pWnd == &m_edit) { pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(RGB(0,0,255)); HBRUSH newHbr = CreateSolidBrush(GetSysColor(COLOR_BTNFACE)); // TODO: Return a different brush if the default is not desired return newHbr; } return hbr; } 改变字体的大小:=========================================思路:调用控件的SetFont方法。 步骤:1:添加字体类对象 //假设你已有了名为My的对话框工程.并有一个ID=IDC_EDIT1的Edit控件. class CMyDlg : public CDialog { public: CFont *m_Font;//最好用指针,我用对象调用好像不起作用,不清楚原因! m_Font = new CFont;//结束时记得要delete m_Font; ........ }; 2.新建字体&设置字体myFont.CreateFont(41,0,0,0, 100,FALSE,FALSE,0,ANSI_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,FF_SWISS,(LPCTSTR)"Arial");//创建字体 CEdit *m_Edit=(CEdit *)GetDlgItem(IDC_EDITBegin); m_Edit->SetFont(&myFont,FALSE);//设置字体 创建字体函数BOOL CreateFont的参数说明: =============BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename ); nHeight :字体高度. 三中情况 1、>0:字体的高度值(设备坐标);2、=0:字体采用缺省值. 3、 SetFont(&fnt_static); GetDlgItem(IDC_BUTTONGenerate)-> SetFont(&fnt_static); 其中,IDC_STATIC,IDC_BUTTON分别为静态文本和按钮的ID。 PS:以上讨论的方法只是一次修改一个控件的属性,显然这样做是不符合面向对象的思想的。 一了百了的方法:从CEdit类派生出一个可以自己处理字体、背景和字体颜色的类。具体怎样做,在研究出来后再写一篇。