vc ++关于void C**Dlg::OnPaint()

新建MFC,创建基本对话框。看C**DLG.cpp中就有这个C**Dlg::OnPaint()函数,但是我在新建一个对话框,新建一个类就没有这个函数,那么如下程序我该写在... 新建MFC,创建基本对话框。看C**DLG.cpp中就有这个C**Dlg::OnPaint()函数,但是我在新建一个对话框,新建一个类就没有这个函数,那么如下程序我该写在什么位置上呢?
void CSlecDlg::OnPaint()
{

CPaintDC dc(this);
if (IsIconic())
{
// device context for painting

SendMessage(WM_ICONERASEBKGND, (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
{DrawUserPhoto(50,30,&dc); //我需要用到这个函数。需要显示bmp图片
CDialog::OnPaint();
}
}

/////////////////在屏幕上显示图像///////////////////
void member::DrawUserPhoto(int x, int y, CDC *pDC)
{
if(!m_hPhotoBitmap) return;
HBITMAP OldBitmap;
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
OldBitmap=(HBITMAP)MemDC.SelectObject(m_hPhotoBitmap);
pDC->BitBlt(x,y,300,450,&MemDC,0,0,WHITENESS);
MemDC.SelectObject(OldBitmap);
}
展开
 我来答
bhtzu
2013-05-30 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4264万
展开全部
对话框类的OnPaint函数的功能是不可替代的,它会在程序界面需要更新(比如窗口放缩,切换,还原,覆盖)的时候,被自动触发调用。
使用classwizard,重载对话框的WM_PAINT消息,会增加对话框OnPaint函数实体就可以了。
追问
如何使用classwizard的呀?小弟我刚学习,是说重载完成后,新的类的对话框也有onpaint了么?老的对话框的opaint也在吗?
追答
是的,重载完成后,新的类的对话框也有onpaint了

classwizard是最常用的VC向导工具,一定要熟悉。各个版本方式不同,如VC6,多个地方可以启动,可以在菜单view—classwizard开启。选中WM_PAINT,AddFunction就可以了。
文库中有详细的图文讲解:

http://wenku.baidu.com/view/97e93674a417866fb84a8ec0.html
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式