设置对话框的背景图片:
<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),然后就可以加入进去了。