背景图象不一定是BMP格式,也可以是jpg格式.
VC自己的灰色背景太难看了!
谢了!
VC自己的灰色背景太难看了!
谢了!
解决方案 »
- MFC编辑框将输入识别为十六进制字符而不是字符串
- 有谁在北京Agilent干活么?待遇如何?解决户口乎?
- MFC向导自己生成的基本内容带了Menu,我想去掉,省事点的方法应该怎么做?
- 如何修改列表控件的标题栏颜色?
- {少见的困惑},内部网服务器(己做映射),本网内机器通过公网IP无法登录,UDP协议
- 怎样在继承CCmdTarget类中使用CWnd类的函数??
- 为什么我的存储过程取不到返回值啊
- 请教赋值得问题
- 救命!atl com里面修改注册表的问题,各位帮忙看看吧.
- 请问如何禁止关闭应用程序!
- 会汇编的大虾进来看看.
- 在win2000下编的activex,用到了unicode,怎样打包或release使其在98下也能运行?
有很多方法。
比如你可以在显示时自己画。最常见的方法就是响应WM_ERASEBKGND消息通知该窗口擦除背景
下面的例子是改变背景颜色,你把画刷改成位图画刷就可以做了了。
BOOL CSampleView : : 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
}
我查了一下,在CFormView中没有WM_ERASEBKGND消息,请问怎么解决?
谢谢!
OnEraseBkgnd是CWnd的虚函数,呵呵。
你直接如上重载这个函数就是了
CClientDC pDC(this);
MemDC.CreateCompatibleDC(&pDC);
GetClientRect(&wrect);
int cx = wrect.right-wrect.left;
int cy = wrect.bottom-wrect.top;
bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
"c:\\back.bmp",IMAGE_BITMAP,cx,cy,
LOADFROMFILE|LR_CREATEDIBSECTION);
ASSERT(bitmap);
HBITMAP OldBitmap;
OldBitmap = (HBITMAP)MemDC.SelectObject(bitmap);
pDC.BitBlt(0,0,cx,cy,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(OldBitmap);注: "c:\\back.bmp" 是你的bmp文件给分快!!!
稍后都给分!
请教 HKer_007(健康):"c:\\back.bmp"如果不用硬地址用分配的ID,怎么做?
谢谢!