MFC基于对话框的程序中OnPaint函数里能添加代码吗?

该函数自带的代码如下:
void CLxDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 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
{

CDialog::OnPaint();
}
}

这里貌似没有可以添加代码的地方啊,如果我想在该函数里添加一些对话框界面颜色设定什么的,那在哪儿添加呢?

在else 里面添加就可以了

IsIconic 是最小化
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-17
else
{
//这里添加自己定义的绘图代码

CDialog::OnPaint();
}

MFC基于对话框的程序中OnPaint函数里能添加代码吗?
在else 里面添加就可以了 IsIconic 是最小化

如何使用mfc单文本框绘制坐标轴
基于对话框的MFC,在主对话框类中,OnPaint函数中,增加如下代码:if( m_beginPoint != CPoint( 0, 0 ) && m_endPoint != CPoint( 0, 0 ) ){ CClientDC hdc(this); \/\/获得设备环境 hdc.MoveTo( m_beginPoint );hdc.LineTo( m_endPoint );} 然后创建一个OnLButtonDown函数,内容如下...

请问MFC 根据数据怎么在对话框上画曲线图。 要有坐标。 求大神帮忙,最...
在OnPaint()或者在OnDraw()画图都可以。下面是以一个数组里边的数据画图的例子 void CFftDlg::OnPaint(){ CPaintDC dc(this); \/\/ device context for painting \/\/ TODO: 在此处添加消息处理程序代码 CRect rect;int m_Low=0;int m_High=100;int m_Low1=-1;int m_High1=1;CString str;i...

MFC做计算器显示函数图像
不知道你是做对话框还是单文档,如果是对话框应该添加一个picture控件,在OnPaint中添加绘图代码。如果是文档在视图类的OnDraw中添加代码。

VC++ MFC在对话框上画图问题
;这样就可以在test22.cpp中用onpaint()函数了,添加void test22::OnPaint(){}就可以了:)2、点击按钮弹出新建的那个dialog,在那个按钮事件里面新建一个对象,test22 temp;temp.DoModal();就是弹出test22这个类的窗口了:)记住在按钮这个cpp前面需要#include "test22.h"才能够用test22这个类的:)

MFC界面刷新问题
onPaint函数是MFC在相应WM_PAINT消息时自动调用的,在这个函数里面加入你的绘图逻辑就可以了,不要自己去调用onPaint

在MFC中,OnPaint中调用OnDraw函数,这个过程被封装了,求剖析!
首先:我们先要明确CView类派生自CWnd类。而OnPaint()是CWnd的类成员,同时负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,并且没有响应消息的功能。这就是为什么你用VC成的程序代码时,在视图类只有OnDraw没有OnPaint的原因。而在基于对话框的程序中,只有OnPaint。其次:我们在第《每天跟我学...

MFC新建对话框的初始化已经添加了虚函数OnInitDialog()也添加了代码...
OnInitDialog之后,会默认调用Invalidate函数,触发重绘。如果你没有在OnPaint里面绘制,那么必然不显示。任何希望一直显示的图片,必须在OnPaint里面完成绘制才可以。

MFC 中OnPaint()函数中的用法
OnPaint()在窗口进行重绘时会被调用,所以如果有些图或者控件是你动态生成的,而你又不希望在重绘时被擦除的话,你可以把绘图的过程写在OnPaint里。

编写一个对话框应用程序,在对话框中画一个椭圆
在OnPaint()函数中if\/else结构的else中添加如下代码即可:void CDrawEllipseDlg::OnPaint(){ if (IsIconic()){ ……} else { CPaintDC dc(this);dc.Ellipse(50, 50, 200, 100);CDialog::OnPaint();} }

相似回答