在大一时,学过MFC,不过那时刚接触编程,C/C++学完不久,跟重要的是没动手编程,后来又做ACM去了。现在大三了,各种实验课设老师都要求用VC可视化,于是借着机会学了点MFC皮毛,在此总结一些常用技巧,简直贻笑大方了!由于很多东西没有上升的理论层面,在此只能介绍下应用,方便学习交流,同时以备后面用到。
首先谈谈设置静态文本前、背景色。我只用到了其中一种,在此列出。
要使静态文本透明化,首先添加消息响应函数WM_CTLCOLOR。一般步骤为点击菜单栏“查看”,选择“建立类向导”,在相应对话框类中选择”WM_CTLCOLOR“,系统自动添加HBRUSH XXXX类::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 函数,然后在里面添加代码即可,如下:
1.此代码是不显示背景色的。
/*********************************************** *功能:改变对话框中静态文本的颜色对话框 * ************************************************/ HBRUSH MyLoginDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor==CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT); return HBRUSH(GetStockObject(HOLLOW_BRUSH)); } return hbr; }
效果图如下:
2.此代码是显示背景色的。
/*********************************************** *功能:改变对话框中静态文本的颜色对话框 * ************************************************/ HBRUSH MyLoginDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); return hbr; }效果图如下:
注意在创建该对话框出即调用该类对话框DoModal()前添加语句SetDialogBkColor(RGB(100,200,100),RGB(0,0,255))设置静态文本的颜色。
以上代码可能参照先驱博客,在此表示感谢!如有错误,欢迎大牛斧正!