软件界面肤色

prait 2005-08-12 08:57:34
请问如何改变软件肤色?
比如说对话框背景用一副图片,在上面有一些控件,如何实现??谢谢先,
...全文
172 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hyg2008 2005-08-15
mark
回复
flowstar 2005-08-15
用相关的皮肤包也是不错的!!!
回复
goodboyws 2005-08-15
重载OnPaint自己画
回复
luchang 2005-08-15
如果对话框设计的有最大化,那怎么处理窗口变化时的背景?
回复
Snow_Ice11111 2005-08-15
呵呵,我也是菜鸟,不过往对话框上加背景很容易的。
1)在你的对话框类中添加一个CBrush变量m_BKBrush;
2)然后在对话框类的构造函数末添加如下代码:
CBitmap* pBitmap = new CBitmap;
ASSERT(pBitmap);
pBitmap->LoadBitmap(IDB_BACKGROUD);
m_BKBrush.CreatePatternBrush(pBitmap);
delete pBitmap;
其中IDB_BACKGROUD为你的背景图资源
3)最后在MFC ClassWizard中重载对话框类的WM_CTLCOLOR消息对应的函数OnCtlColor,修改代码如下:
{
if (nCtlColor == CTLCOLOR_DLG )
return (HBRUSH)m_BKBrush.GetSafeHandle();
return CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
}
这样以后对话框的背景就换成你的图了。
回复
toiler 2005-08-13
人家是将内存的图像传给oldBitmap,oldBitmap里还没有什么东东
回复
lwjwj1314 2005-08-13
楼上的,请问为什么
memDC选择对象oldBitmap要在pDC调用了BitBlt之后呢?
在它之前如果不行?为什么呢?谢谢。
回复
rageliu 2005-08-13
在窗体上显示位图就可以了,用如下代码:
CDC memDC;//内存设备场景
  CBitmap cb;//位图类对象
  CRect rect;
  GetWindowRect(&rect);
  cb.LoadBitmap (IDB_BITMAP1);//载入资源
  memDC.CreateCompatibleDC (pDC);//创建内存设备上下文
  CBitmap *oldbitmap=NULL;
  oldbitmap=memDC.SelectObject (&cb);//将位图选入当前设备场景
  pDC->BitBlt (0,0,rect.Width (),rect.Height (),&memDC,0,0,SRCCOPY);//将内存场景的图象拷贝到屏幕上
  memDC.SelectObject (oldbitmap);
回复
lixiaosan 2005-08-12
http://www.codeproject.com/dialog/bmpdlg01.asp
回复
lixiaosan 2005-08-12
http://www.codeguru.com/Cpp/W-D/dislog/bitmapsimages/article.php/c1877/
http://www.codeguru.com/Cpp/W-D/dislog/bitmapsimages/article.php/c4977/
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-08-12 08:57
社区公告
暂无公告