MFC怎样重载OnPaint函数给子对话框改变背景?

Voyageur2 2011-06-03 01:43:27
主对话框已经可以实现了,代码如下:

void CMyXMLDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);

CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);
//IDB_BITMAP是你自己的图对应的ID
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(), rect.Height(),&dcMem, 0, 0, bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}
}

那么要怎样重载这个给子对话框改变背景呢?子对话框没有OnPaint()函数
...全文
729 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Emily_abc 2013-07-12
  • 打赏
  • 举报
回复
求代码……往子对话框中怎么样添加消息循环?
Cai_xiaotian 2012-08-06
  • 打赏
  • 举报
回复
怎么样定义的子类,我用
CDialog log(IDD_Welcome);
log.DoModal();
弹出的对话框添加背景怎么不可以,求代码:735929768@qq.com
Voyageur2 2011-06-03
  • 打赏
  • 举报
回复
我自己已经实现了,就是重载OnPaint(),添加消息循环就是了
星爷是我哥 2011-06-03
  • 打赏
  • 举报
回复
如果你的对话框类能继承的话,理论上是子类也会有背景,就看你的这个类能不能继承,怎么继承的了。

KID_coder 2011-06-03
  • 打赏
  • 举报
回复
子对话框可以重写OnPaint
类向导可以添加WM_PAINT消息响应函数~
LZ是问这个吗?

15,980

社区成员

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

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