软件界面肤色

prait 2005-08-12 08:57:34
请问如何改变软件肤色?
比如说对话框背景用一副图片,在上面有一些控件,如何实现??谢谢先,
...全文
234 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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);
}
这样以后对话框的背景就换成你的图了。
waeno 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/

15,980

社区成员

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

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