高分求助!怎么改变对话框的背景色?

llb2000 2003-03-16 09:29:56
如果不能,那怎么用一幅bmp图作为背景图?
多谢,很急,如果分不够,还可再加,只要解决。
...全文
22 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2003-03-16
  • 打赏
  • 举报
回复
BOOL CMyDlg::OnEraseBkgnd (CDC* pDC)
{
// Create a pruple brush.
CBrush Brush (RGB (128 , 0 , 128) )

// Select the brush into the device context .
CBrush* pOldBrush = pDC—>SelcetObject (&brush)

// Get the area that needs to be erased .
CRect reClip
pDC—>GetCilpBox (&rcClip)
//Paint the area.
pDC—> PatBlt (rcClip.left , rcClip.top , rcClip.Width ( ) , rcClip.Height( ) , PATCOPY )

//Unselect brush out of device context .
pDC—>SelectObject (pOldBrush )

// Return nonzero to half fruther processing .
return TRUE
}
黄双全 2003-03-16
  • 打赏
  • 举报
回复
是SetDialogBkColor,不过这会把所有的dialog都设置为同一个颜色。
void SetDialogBkColor( COLORREF clrCtlBk = RGB(192, 192, 192), COLORREF clrCtlText = RGB(0, 0, 0) );
Parameters
clrCtlBk
The dialog background color for the application.
clrCtlText
The dialog control color for the application.

1.显示程序中的位图资源。(假设位图资源ID为:IDB_BITMAP)
代码段:
CBitmap m_bm; //存储位图位图类
CClientDC m_dc(this); //作图窗口的DC
CDC m_dcMem; //存储位图的DC
m_bm.LoadBitmap(IDCB_BITMAP);
dcMem.CreateCompatileDC(&m_dc);
m_dc.BitBlt(0,0,100,100,&m_dcMem,0,0,SRCCOPY);
2.动态显示部位图文件。(假设置外部的位图路径为m_ImgPath)
CDC dcMem;
CClientDC m_dc(this);
HBITMAP hbmpOld;
CRect m_Rect(0,0,600,600);//设定位图的作区
// 显示位图的实际大小.
hbmpOld=(HBITMAP)LoadImage(0,m_ImgPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_DEFAULTSIZE);
// 若要设定位图的高和宽(m_ImgH,m_ImgW)则用下面的语句
// hbmpOld=(HBITMAP)LoadImage(0,m_ImgPath,IMAGE_BITMAP,m_ImgH,m_ImgW,LR_LOADFROMFILE);
dcMem.CreateCompatibleDC(m_dc);
hbmpOld=(HBITMAP)dcMem.SelectObject(hbmpOld);
m_dc->BitBlt(0,0,m_Rect->Width(),m_Rect->Height(),&dcMem,0,0,SRCCOPY);
dcMem.SelectObject(hbmpOld);
anjy 2003-03-16
  • 打赏
  • 举报
回复
http://www.vckbase.com/bbs/prime/viewprime.asp?id=96
anjy 2003-03-16
  • 打赏
  • 举报
回复
http://www.vckbase.com/bbs/prime/viewprime.asp?id=29
akiy 2003-03-16
  • 打赏
  • 举报
回复
可以直接改背景
载app::InitInstance()
中setdialogbkgroundcolor()//好像是这个,工程中所有对话框都变色了
贴图
载对话框onpaint中
CPaintDC dc(this);
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAPBKGROUND);
CDC memDC;
memDC.CreateCompatibleDC(NULL);
CBitmap *oldbmp=memDC.SelectObject(&bmp);
dc.BitBlt(0,0,400,200,&memDC,0,0,SRCCOPY);
memDC.SelectObject(oldbmp);
memDC.DeleteDC();
bmp.DeleteObject();
CDialog::OnPaint();

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧