画图Onpaint()函数遇到的问题

画图Onpaint()函数遇到的问题

社区

图形处理/算法 帖子详情 画图Onpaint()函数遇到的问题 dinona 2009-07-01 03:02:03 在OnPaint() 中加入代码画图,可以实现

但是程序一开启,似乎并不会去调用OnPaint()函数

导致我的图一开始没有被画出来

然后是当有其他窗体挡住了我整个应用程序[有其他应用程序完全挡住]

然后我再让我的应用程序最前端,发现图片没有了

被遮住一部分,可以显示出来,非常正常

那么前面的问题应该怎么解决呢,大家帮忙啦,谢谢

...全文

341 19 打赏 收藏 画图Onpaint()函数遇到的问题 在OnPaint() 中加入代码画图,可以实现 但是程序一开启,似乎并不会去调用OnPaint()函数 导致我的图一开始没有被画出来 然后是当有其他窗体挡住了我整个应用程序[有其他应用程序完全挡住] 然后我再让我的应用程序最前端,发现图片没有了 被遮住一部分,可以显示出来,非常正常 那么前面的问题应该怎么解决呢,大家帮忙啦,谢谢 复制链接

扫一扫 分享 转发到动态 举报 AI 作业

写回复 配置赞助广告取 消

确 定

用AI写文章 19 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 dinona 2009-07-01 打赏举报 回复 18楼正解,虽然并不知道原因,可是非常感谢

揭贴 寒冰雪 2009-07-01 打赏举报 回复 加句UpdateWindow();试下。。 wltg2001 2009-07-01 打赏举报 回复 建议还是检查一下_cdc是不是初始化好了 dinona 2009-07-01 打赏举报 回复 CStatic pitShow;//picture控件

CDC *_cdc;

_cdc = pitShow.GetDC(); dinona 2009-07-01 打赏举报 回复 忘记说明了,我是在picture控件上面画图的

_cdc就是picture控件的CDC,

初始化什么是没有问题的

如果有问题就不会有时候可以画出来有时候不可以画出来了哦 快乐鹦鹉 2009-07-01 打赏举报 回复 _cdc是成员变量?什么时候初始化的? Ryanwen 2009-07-01 打赏举报 回复 _cdc是怎么定义的? 在OnPaint中为什么不用CPaintDC dc(this);

CDialog::OnPaint(); //把这句注释掉 dinona 2009-07-01 打赏举报 回复 试过,不行哦 快乐鹦鹉 2009-07-01 打赏举报 回复 写在else处,CDialog::OnPaint()之后 dinona 2009-07-01 打赏举报 回复 void CShowLineDlg::OnPaint()

{

CPen penX,penY,penZ,penT,*oldpen;

penX.CreatePen(PS_SOLID,1,RGB(255,0,0));

penY.CreatePen(PS_SOLID,1,RGB(0,255,0));

penZ.CreatePen(PS_SOLID,1,RGB(0,0,255));

penT.CreatePen(PS_SOLID,1,RGB(0,0,0));

double x1,x2;

int i;

int X=0;

double OriginX,OriginY,OriginZ;//原点坐标

double OffsetX=50,OffsetY=100;//横,纵坐标偏移量

OriginX=_points[0]._x;

OriginY=_points[0]._y;

OriginZ=_points[0]._z;

//画出时间横轴

oldpen = _cdc->SelectObject(&penT);

_cdc->MoveTo(0,OffsetY);

_cdc->LineTo(800,OffsetY);

_cdc->SelectObject(oldpen);

//画出X坐标偏移

oldpen = _cdc->SelectObject(&penX);

for(i=0;i<_counter;i++)

{

x1=(OriginX-_points[i]._x)+OffsetY;

x2=(OriginX-_points[i+1]._x)+OffsetY;

_cdc->MoveTo(X,x1);

X+=OffsetX;

_cdc->LineTo(X,x2);

}

_cdc->SelectObject(oldpen);

//画出Y坐标偏移

oldpen = _cdc->SelectObject(&penY);

X=0;

for(i=0;i<_counter;i++)

{

x1=(OriginY-_points[i]._y)+OffsetY;

x2=(OriginY-_points[i+1]._y)+OffsetY;

_cdc->MoveTo(X,x1);

X+=OffsetX;

_cdc->LineTo(X,x2);

}

_cdc->SelectObject(oldpen);

//画出Z坐标偏移

oldpen = _cdc->SelectObject(&penZ);

X=0;

for(i=0;i<_counter;i++)

{

x1=(OriginZ-_points[i]._z)+OffsetY;

x2=(OriginZ-_points[i+1]._z)+OffsetY;

_cdc->MoveTo(X,x1);

X+=OffsetX;

_cdc->LineTo(X,x2);

}

_cdc->SelectObject(oldpen);

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();

}

} wltg2001 2009-07-01 打赏举报 回复 对话框的OnPaint中有个if语句的,你的代码加在什么地方啊? Ghost90 2009-07-01 打赏举报 回复 放在 OnDraw()里呢??? 快乐鹦鹉 2009-07-01 打赏举报 回复 [Quote=引用 4 楼 dinona 的回复:]

OnPaint函数的入口就是画我想要的图片

如果调用了没理由没有显示

如果我在Dlg::OnInitDialog()

中加入PostMessage(WM_PAINT,0,0);//触发OnPaint()函数

一开启程序就可以显示

[/Quote]

你说的很对啊。OnPaint应该自动调用的啊。理论大家都是明白的。你不愿意贴代码,就没有办法了。 dinona 2009-07-01 打赏举报 回复 强制是很简单,问题是我什么时候来强制它重绘

我的程序又不会自动响应它刚才被其他窗体覆盖了

然后自动去调用你说的Invalidate mynamelj 2009-07-01 打赏举报 回复 InvalidRect强制客户区重绘 dinona 2009-07-01 打赏举报 回复 OnPaint函数的入口就是画我想要的图片

如果调用了没理由没有显示

如果我在Dlg::OnInitDialog()

中加入PostMessage(WM_PAINT,0,0);//触发OnPaint()函数

一开启程序就可以显示 dinona 2009-07-01 打赏举报 回复 对话框 快乐鹦鹉 2009-07-01 打赏举报 回复 加断点确定OnPaint没有被调用? 快乐鹦鹉 2009-07-01 打赏举报 回复 你是何种工程?SDI还是对话框?OnPaint应该被调用啊 MFC onPaint 实例 画图DIY 用 VC 6.0 写的一个小软件,很多功能还没有怎么添加

实现通过命令移动光标,在画板上面画线 MFC版本五子棋(画图函数版) MFC做的五子棋。完全利用画图函数做的,但这个不象前面那个带背景音乐。

献丑献丑~~ Visual C++经典画图程序 Visual C++经典画图程序Visual C++经典画图程序 MFC画图软件 GDI学习中练习所有代码,可画图,修改画笔等 MFC写的画图程序 简单写了一个画图的程序

图形处理/算法

19,473

社区成员

50,678

社区内容

发帖 与我相关 我的任务 图形处理/算法 VC/MFC 图形处理/算法 复制链接

扫一扫 分享 确定 社区描述 VC/MFC 图形处理/算法 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章

相关推荐

男生喜欢什么样的女生?一般是以下4种类型
在哪个应用商店能下载365

男生喜欢什么样的女生?一般是以下4种类型

📅 07-12 👍 199
男性生殖系統
365平台客服电话

男性生殖系統

📅 07-16 👍 454
不同档位的ND减光镜,应用在什么场景?
365平台客服电话

不同档位的ND减光镜,应用在什么场景?

📅 07-21 👍 562
理性分析Thinkpad笔记本行水货差价为何便宜六成
在哪个应用商店能下载365

理性分析Thinkpad笔记本行水货差价为何便宜六成

📅 07-06 👍 499
这篇文章告诉你毕业5年后, 应该有多少存款
在哪个应用商店能下载365

这篇文章告诉你毕业5年后, 应该有多少存款

📅 06-30 👍 950
[交流]【资讯分享】老朋友们回归新区一定要选这些门派,“通关难度”立减30%