VC 怎样改变按钮的颜色? 我在学习VC界面的修改,一般的VC界面颜色都是灰色的,我怎么改变控件的颜色呀?比如说Button的颜色,Radio的颜色,以及背景的颜色等等?请各位告诉帮帮忙,最好能附加一段程序的代码。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重载OnCtlColor在这个函数里修改 http://www.softechsoftware.it/cbuttonst.html http://topic.csdn.net/t/20000831/06/27641.html 我是这样解决的:重载OnCtlColor函数,对应的控件颜色就可以修改了,下面是我实现对Static1,Static2,Static3颜色的修改代码,希望可以帮助你。HBRUSH yang::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); CBrush m_brush; m_brush.CreateSolidBrush(RGB(0,255,0)); CStatic* pStatic1; CStatic* pStatic2; CStatic* pStatic3; //CStatic* pStatic3; pStatic1 = (CStatic*)GetDlgItem(IDC_STATIC_NAME); pStatic2 = (CStatic*)GetDlgItem(IDC_STATIC_PW); pStatic3 = (CStatic*)GetDlgItem(IDC_STATIC3); //pStatic3 = (CStatic*)GetDlgItem(IDC_STATICINFO3); // TODO: Change any attributes of the DC here if(nCtlColor==CTLCOLOR_STATIC) { if(pWnd->m_hWnd == pStatic1->m_hWnd) pDC->SetBkColor(RGB(51,51,51)); pDC->SetTextColor(RGB(255,255,255)); if(pWnd->m_hWnd == pStatic2->m_hWnd) pDC->SetBkColor(RGB(51,51,51)); pDC->SetTextColor(RGB(255,255,255)); if(pWnd->m_hWnd == pStatic3->m_hWnd) pDC->SetBkColor(RGB(51,51,51)); pDC->SetTextColor(RGB(255,255,255)); //if(pWnd->m_hWnd == pStatic3->m_hWnd) //pDC->SetBkColor(RGB(255,0,255)); } //HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Return a different brush if the default is not desired return hbr;} 我刚才所说的是改变除了button之外的控件颜色,要改变button的颜色,如果改变背景需要重载一些函数,比较麻烦,可以使用给位图贴图的办法。你可以试试看。 我是用API函数写的这么一段代码?用API函数怎么实现呀?请大家帮帮忙。五楼兄弟使用的是MFC编写的VC程序。急急急急急急请各位帮忙。 头痛- -问个DirectX开发的入门问题:怎么加载多个mesh?? 怎么读取txt文件内容到listControl列表中 socket编程问题 谁有PDF的SDK请e-meil给我,谢谢 如何给2值图去除斑点? 帮帮忙!!!持续串口通讯的资源泄露问题 在Opengl的投影方式下,如何知道窗口的边界的数值 如何快速解析XML文档(7M),高分求救!!! 全部可用分 在win7下响应OnNcCalcSize调整非客户区大小无效 mdb文件的操作方法? 线程调用fopen的问题
在这个函数里修改
HBRUSH yang::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
CBrush m_brush;
m_brush.CreateSolidBrush(RGB(0,255,0));
CStatic* pStatic1;
CStatic* pStatic2;
CStatic* pStatic3;
//CStatic* pStatic3;
pStatic1 = (CStatic*)GetDlgItem(IDC_STATIC_NAME);
pStatic2 = (CStatic*)GetDlgItem(IDC_STATIC_PW);
pStatic3 = (CStatic*)GetDlgItem(IDC_STATIC3);
//pStatic3 = (CStatic*)GetDlgItem(IDC_STATICINFO3);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_STATIC)
{
if(pWnd->m_hWnd == pStatic1->m_hWnd)
pDC->SetBkColor(RGB(51,51,51));
pDC->SetTextColor(RGB(255,255,255));
if(pWnd->m_hWnd == pStatic2->m_hWnd)
pDC->SetBkColor(RGB(51,51,51));
pDC->SetTextColor(RGB(255,255,255));
if(pWnd->m_hWnd == pStatic3->m_hWnd)
pDC->SetBkColor(RGB(51,51,51));
pDC->SetTextColor(RGB(255,255,255));
//if(pWnd->m_hWnd == pStatic3->m_hWnd)
//pDC->SetBkColor(RGB(255,0,255));
} //HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Return a different brush if the default is not desired
return hbr;
}
请大家帮帮忙。五楼兄弟使用的是MFC编写的VC程序。
急急急急急急
请各位帮忙。