MFC C++初学,一个工程下有2个类,都有ONPAINT函数,那么在对话窗中绘制矩形应该用哪个类的ONPAINT函数?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/20 00:03:51
MFC C++初学,一个工程下有2个类,都有ONPAINT函数,那么在对话窗中绘制矩形应该用哪个类的ONPAINT函数?
ONPAINT函数到底是在什么时候响应的?如果几个类都有ONPAINT,那么在对话框中相应矩形应该是用哪个类的ONPAINT?
void CMyDlgOpenGLDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND,reinterpret_cast(dc.GetSafeHdc()),0);
// 使图标在工作区矩形中居中
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;
// 绘制图标
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
比如说这两个同一个工程下的类的ONPAINT,如果我要画矩形究竟是哪个在类的ONPAINT上写代码,还有
BOOL CMyDlgOpenGLDlg::OnInitDialog()这个函数也可以画矩形,究竟是怎么回事?
{
CDialogEx::OnInitDialog();
.
// TODO:在此添加额外的初始化代码
CRect rect(7,7,600,600); //定义OpenGL 绘图窗口的矩形大小
//创建COpenGL类对象
m_pDisplay->Create(NULL,//缺省的窗口
.return true;}谢谢阿
ONPAINT函数到底是在什么时候响应的?如果几个类都有ONPAINT,那么在对话框中相应矩形应该是用哪个类的ONPAINT?
void CMyDlgOpenGLDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND,reinterpret_cast(dc.GetSafeHdc()),0);
// 使图标在工作区矩形中居中
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;
// 绘制图标
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
比如说这两个同一个工程下的类的ONPAINT,如果我要画矩形究竟是哪个在类的ONPAINT上写代码,还有
BOOL CMyDlgOpenGLDlg::OnInitDialog()这个函数也可以画矩形,究竟是怎么回事?
{
CDialogEx::OnInitDialog();
.
// TODO:在此添加额外的初始化代码
CRect rect(7,7,600,600); //定义OpenGL 绘图窗口的矩形大小
//创建COpenGL类对象
m_pDisplay->Create(NULL,//缺省的窗口
.return true;}谢谢阿
onpaint 就是系统认为需要重新绘制该图形时调用.例如某个窗口从被遮挡到不被遮挡,那么这个位置就得重绘的时候就会调用onpaint.调用的可能性有很多,例如最大最小化等.有多个onpaint就可以理解为多个地方会重绘,两者可以是相互独立互不影响的.你想在哪一个地方重绘就在哪一个地方写.至于在初始化画是可以的,不过你尝试让他被遮挡(例如其他窗口),或者最小化再还原,就会发现画的东西没了.
再问: 我的问题是,为什么在对话框类的ONPAINT是空的,但是在自定义类里写的ONPAINT却能在对话框中显示
再答: “对话框的onpaint为空”这句不能理解。函数体完整啊
再问: 我的问题是,为什么在对话框类的ONPAINT是空的,但是在自定义类里写的ONPAINT却能在对话框中显示
再答: “对话框的onpaint为空”这句不能理解。函数体完整啊
在mfc中基于对话框的static控件范围内绘制直线,为什么没反应呢,我是在OnTimer()函数中激活OnPaint(
java 定义一个矩形类,有长、宽2个属性,有成员函数计算矩形的面积.
用C++MFC显示一个复数函数图像
MFC中绘制正弦曲线的清除问题
设计一个矩形类 有构造函数 析构函数 GET函数 SET函数以及下列重载的运算符 重载加法运算符+ 将两个矩形相
mfc 中CString类中的Format(_T("%d,%f,%ld,%lf,%c,%s"),函数表示什么?怎么使用?
1.在一个类的定义中,包含有( )成员的定义.A.数据 B.函数 C.数据和函数 D.数据或函数
在二次函数中,若函数与x轴有两个交点,那么这两点的距离是多少?(哪个公式)
几何画板的使用在平面直角坐标系中,绘制一个一次函数,y=5x+p,p为参数若想平移y=5x,就应该改变p的值那么怎么样平
MFC中如何在一个矩形框内显示一个随机数啊?
matlab 在一个极坐标中绘制两个函数图像
EXCEL中 有什么函数表示工程统计的奇进偶舍吗?