你好~~我想请问一下啊MFC的一个问题。。。 10
我建立的是一个单个对话框的工程,我想改变对话框的背景用的是重写onpaint()函数的方法,我是菜鸟,我网上找的代码,但是只有主对话框能改变背景,请问子对话框怎么做啊,如...
我建立的是一个单个对话框的工程,我想改变对话框的背景用的是重写onpaint()函数的方法,我是菜鸟,我网上找的代码,但是只有主对话框能改变背景,请问子对话框怎么做啊,如果也是重写onpaint()函数,那我在加入onpaint()函数后没有if结构……应该怎样做……谢谢……
我用的是这个方法:
定位到 void CXXXDlg::OnPaint(),在if()...else()中的else()下添加如下代码
else
{
//CDialog::OnPaint();//要禁止这个调用
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP);
//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);
}
那么,先在子对话框的类里面添加WM_PAINT(),然后再添加WM_PAINT()的代码这样做事没有错的,按道理来讲应该是可行的,这个函数是不依赖于其他那个函数的对么 展开
我用的是这个方法:
定位到 void CXXXDlg::OnPaint(),在if()...else()中的else()下添加如下代码
else
{
//CDialog::OnPaint();//要禁止这个调用
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP);
//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);
}
那么,先在子对话框的类里面添加WM_PAINT(),然后再添加WM_PAINT()的代码这样做事没有错的,按道理来讲应该是可行的,这个函数是不依赖于其他那个函数的对么 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询