|
SOFTIST
编程方法筆記编程方法筆記 →目录
对话框的背景色与背景图(VC++)
本文是对话框背景色和背景图描画方法的笔记。通过使用背景色和背景图可是应用程序独具特色。
1.背景色

在CDialog的派生类比如叫CBkTestDlg里,增加一个刷子变量。
CBrush m_brshBack;
在BOOL CBkTestDlg::OnInitDialog()函数里追加一行设定刷子颜色的语句。
m_brshBack.CreateSolidBrush(RGB(255, 128, 255));
重载WM_CTLCOLOR消息的处理函数
HBRUSH CBkTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if ( nCtlColor == CTLCOLOR_DLG )
{
return (HBRUSH)m_brshBack;
}
return hbr;
}
2.背景图

在CDialog的派生类比如叫CBkTestDlg里,增加一个位图变量。
CBitmap m_bitmapBack;
用资源编辑器做一个大图:IDB_BITMAP1
在BOOL CBkTestDlg::OnInitDialog()函数里追加一行装入位图的语句。
m_bitmapBack.LoadBitmap(IDB_BITMAP1);
修改void CBkTestDlg::OnPaint()函数
void CBkTestDlg::OnPaint()
{
if (IsIconic())
{
... ...
... ...
}
else
{
CPaintDC dc(this);
dc.DrawState(CPoint(0,0), CSize(318,256), m_bitmapBack, DST_BITMAP);
CDialog::OnPaint();
}
}
|