开门见山:创建子窗口的方法请参考我上一篇博客:http://blog.csdn.net/u014411348/article/details/53911682
主窗口修改Static Text控件网上已有很多大神给出了方法,小的就不再重复。
一、单纯改变字体大小、字体
1.请自行在窗口中添加一个Static Text控件并命名。在子窗口的类文件***.h文件下添加(如图1)CFont font1;//控件1CFont font2;//控件2
图1
2.在对应的***.cpp文件中的DoDataExchange(CDataExchange* pDX)函数中添加以下代码:font1.CreatePointFont(220, L"楷体");//控件1GetDlgItem(IDC_STATIC1)->SetFont(&font1); //更改控件1的字体font2.CreatePointFont(260, L"黑体");//控件2GetDlgItem(IDC_STATIC2)->SetFont(&font2);//更改控件2的字体
编译运行可下图结果:
图2
二、单纯改变字体大小、字体、颜色
二、单纯改变字体大小、字体、颜色
改变颜色需响应WM_CTLCOLOR,有两种方法创建OnCtlColor()函数, 1.1.可使用类向导添加OnCtlColor()函数 1.2.可手动添加OnCtlColor()函数 在.h文件中添加函数声明:afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); 在.cpp文件中添加:
2.在OnCtlColor函数中添加代码实现修改控件,BEGIN_MESSAGE_MAP(CDefinedViewDlg, CDialog) ... ON_WM_CTLCOLOR() ... END_MESSAGE_MAP() //函数实现 HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd->GetDlgCtrlID()==IDC_E_TEST) //控件ID pDC->SetTextColor(RGB(255,0,0)); //设置颜色 return hbr; }
HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何特性 if (pWnd->GetDlgCtrlID() == IDC_STATIC1) { m_font.CreatePointFont(220, L"华文行楷");//控件1 pDC->SetBkColor(RGB(0, 255, 0));//背景色为绿色 pDC->SetTextColor(RGB(255, 0, 0));//文字为红色 pDC->SelectObject(&m_font);//文字为22号字体,华文行楷 return m_brush; } // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; }
图3
有疑问的朋友可留言!