你好~~我想请问一下啊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()的代码这样做事没有错的,按道理来讲应该是可行的,这个函数是不依赖于其他那个函数的对么
展开
 我来答
来自美国认真的兔子
2010-12-09 · TA获得超过644个赞
知道小有建树答主
回答量:550
采纳率:100%
帮助的人:422万
展开全部
直接把ELSE里面的代码放OnPaint里面就好了
仔细检查代码,可能是代码中有中文字符。
实在不行把代码都手动输入。
来自:求助得到的回答
桖卉S7
2010-12-10 · TA获得超过1051个赞
知道答主
回答量:447
采纳率:0%
帮助的人:239万
展开全部
是不是创建一个按钮? 如果是就定义一个CButton 对象 并Create出来就好了。
如果想自定义呢,也可以重载这个类或继承CDialog自己绘制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式