很简单的个问题 大家来来来 本帖最后由 mxzy55560593 于 2009-12-20 14:08:12 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在构造函数中写上m_HollowBrush.CreateStockObject(HOLLOW_BRUSH);HBRUSH CBmpBkgndDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_BTN || nCtlColor == CTLCOLOR_STATIC) { pDC->SetTextColor(RGB(0,0,255)); pDC->SetBkMode(TRANSPARENT); return (HBRUSH)m_HollowBrush; }}这样就行啦 刚试了下匪夷所思啊就上面那段代码,用多字节编译效果就如图一样,但在Unicode下效果就不正常,unicode下该怎么写喃? 还不错,但对Groupbox显示效果不好! 响应WM_ERASEBKGND消息,然后在其实现函数里实现以下代码BOOL CXXXDlg::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CRect rect; GetClientRect(&rect); CBitmap m_pBmp; BITMAP bm; CDC dcMem; m_pBmp.LoadBitmap(IDB_BITMAP1); m_pBmp.GetBitmap(&bm);//得到位图尺寸 dcMem.CreateCompatibleDC(pDC); CBitmap* pOldBitmap = dcMem.SelectObject(&m_pBmp); pDC->SetStretchBltMode(COLORONCOLOR);//这个模式不设置的话会导致图片严重失真 pDC->StretchBlt(0,0,rect.Width() ,rect.Height(), &dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY); dcMem.SelectObject(pOldBitmap); return TRUE;}接着在OnCtlColor里实现 if( nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_BTN || nCtlColor == CTLCOLOR_STATIC) { pDC->SetBkMode(TRANSPARENT); } if (nCtlColor == CTLCOLOR_LISTBOX) { return hbr; } return HBRUSH(GetStockObject(HOLLOW_BRUSH));就可以了你要贴的图要先导入,比如我的代码就是先导入在bitmap上的IDB_BITMAP1希望对你有用 为什么加速表里面的Ctrl+P删了还是有效? 如何画圆形按钮,请高手解答! char* 转换_variant_t的问题 CString类型与LPTSTR类型之间如何转换? 请问WINDOWS泄露出来的源代码是用什么写的?? 怎样改变文本框的背景色和前景色 我在VC中有一个问题:字符型转换为字型 请问我在winxp下做的程序中用CRect定义的矩形范围,该程序到win98或win2000下运行时发现,该矩形范围变化了。请问应该如何使其保持一致? 求坐标 想交朋友,MSN:[email protected] 将图片文件读入内存后,原文件不能被删除问题! CloseHandle时,把文件删除了
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_BTN || nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)m_HollowBrush;
}
}
这样就行啦
就上面那段代码,用多字节编译效果就如图一样,但在Unicode下效果就不正常,unicode下该怎么写喃?
BOOL CXXXDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
CRect rect;
GetClientRect(&rect);
CBitmap m_pBmp;
BITMAP bm;
CDC dcMem;
m_pBmp.LoadBitmap(IDB_BITMAP1);
m_pBmp.GetBitmap(&bm);//得到位图尺寸
dcMem.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMem.SelectObject(&m_pBmp);
pDC->SetStretchBltMode(COLORONCOLOR);//这个模式不设置的话会导致图片严重失真
pDC->StretchBlt(0,0,rect.Width() ,rect.Height(),
&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcMem.SelectObject(pOldBitmap);
return TRUE;
}接着在OnCtlColor里实现
if( nCtlColor == CTLCOLOR_DLG ||
nCtlColor == CTLCOLOR_BTN ||
nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
}
if (nCtlColor == CTLCOLOR_LISTBOX)
{
return hbr;
}
return HBRUSH(GetStockObject(HOLLOW_BRUSH));就可以了你要贴的图要先导入,比如我的代码就是先导入在bitmap上的IDB_BITMAP1
希望对你有用