VC对话框美化

设置对话框的背景图片:
<1>添加背景对话框位图资源
<2>加对话框类添加窗口背景重绘的消息函数(WM_ERASEBKGND)
<3>在函数中写代码:
 CDC memDC;
 memDC.CreateCompatibleDC(pDC);//获取内存设备描述表
 CBitmap cBitmap;
 cBitmap.LoadBitmap(IDB_BACKBMP);//加载位图资源
 BITMAP mBitmap;
 cBitmap.GetObject(sizeof(BITMAP),&mBitmap);//获取位图资源的结构体
 CBitmap* pOldMemBmp=NULL;
 pOldMemBmp=memDC.SelectObject(&cBitmap);
 CRect rect;
 GetWindowRect(&rect);//获取窗口客户区大小 
 pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,mBitmap.bmWidth,mBitmap.bmHeight,SRCCOPY);
 if(pOldMemBmp)
  memDC.SelectObject(pOldMemBmp);//恢复旧的位图对象
 memDC.DeleteDC();//释放内存设备描述表
 return TRUE;
 
设置窗口上静态文本背景透明
设置窗口背景图片后会发现窗口上的静态文本背景是白色的,相当不好看,因此要将它设置成透明的。
添加消息响应函数(WM_CTLCOLOR)
添加代码:
 if(nCtlColor==CTLCOLOR_STATIC)
 {
  pDC->SetBkMode(TRANSPARENT);
  return HBRUSH(GetStockObject(HOLLOW_BRUSH));
 }
 
设置漂亮的按钮:
添加好位图资源后,在类中为变量添加变量 CBitmapButton m_xxxButton;
然后在OnItDialog函数中添加代码:
 m_xxxButton.LoadBitmaps(IDB_SAVEUP,IDB_SAVEDOWN,0,IDB_SAVENO);
 m_xxxButton.SubclassDlgItem(IDOK,this);
 m_xxxButton.SizeToContent();
 
给对话框添加状态栏:
 在类中添加变量:CMyStatusBarCtrl m_CStatusBarCtrl; //这是我自己的类,为它设置了背景,呵呵,不然是白色的不好看
 在OnItDialog函数中添加代码
 CRect rect;
 GetClientRect(&rect);
 m_CStatusBarCtrl.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM,rect,this,ID_STATUS_BAR_CTRL);
 int indicators[3];
 indicators[0]=rect.Width()/3;
 indicators[1]=rect.Width()*3/5;
 indicators[2]=rect.Width();
 m_CStatusBarCtrl.SetParts(3,indicators);

 CString str,time;
 str.LoadString(IDS_COMPANY);
 m_CStatusBarCtrl.SetText(str,0,0);
 m_CStatusBarCtrl.SetText(L"当前操作员:"+theApp.m_UserName,1,0);
 
让子对话框在任务栏上占有一席之地
在OnitDialog函数中添加代码
 ModifyStyleEx(0,WS_EX_APPWINDOW);

 

 

给对话框增加图标:
1.在资源管理器中删除ID为IDR_MAINFRAME的图标资源。
2.将自己的图标资源添加进去,并把ID改成IDR_MAINFRAME
3.在每个对话框的OnInitDialog函数中添加代码:
 SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME),TRUE);
然后就可以看到漂亮的图标了。
图标资源可以到网上下,我一般是在网上下png格式的图标,然后用IconXP转换成ico格式的(只要选另存为,然后选择保存类型为ico),然后就可以加入进去了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值