onpiant函数

djh512 2009-10-30 05:33:21
我在onpaint函数里面加入以下代码
CPaintDC dc(this);
SYSTEMTIME st;
GetTime(&st);
CString str;
str.Format("%d年%d月%d日%d:%d:%d",st.wYear,st.wMonth,st.wDay,
st.wHour,st.wMinute,st.wSecond);
dc.TextOut(5,5,str,strlen(str));
然后在一个按键函数下添加
while(1)

Sleep(6000);
onpaint();

为什么总是程序无法相应响应啊
...全文
157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
djh512 2009-10-31
  • 打赏
  • 举报
回复
学习了 ~谢谢各位
arong1234 2009-10-30
  • 打赏
  • 举报
回复
OnPaint不允许直接调用,调用也没有用,OnPaint起作用的前提是有无效矩形区,你直接调用是无效的,只有InvalidateRect/Invalidate才能触发正确的绘图
zhanghaaaa 2009-10-30
  • 打赏
  • 举报
回复
学习一下
WuXinyang 2009-10-30
  • 打赏
  • 举报
回复
OnPaint()里面这样写.....你太强大了.!!!!!
Ryanwen 2009-10-30
  • 打赏
  • 举报
回复
要求不高的话,用个定时器做不是更好

单击按钮时SetTimer,再单击时KillTimer

OnTimer里只要Invalidate()就可以了
muzizongheng 2009-10-30
  • 打赏
  • 举报
回复
你界面线程吗  ? 怎么可以加sleep();

不可以在界面线程调用sleep, 不然因为消息无法转发而卡死 .
djh512 2009-10-30
  • 打赏
  • 举报
回复
我把这个去掉 就onpiant()函数 也无法响应
就是我过一段时间单击一下按钮,时间还是无法改变啊
倒是最小化窗口可以重画
Ryanwen 2009-10-30
  • 打赏
  • 举报
回复
响应什么?

while(1) //死循环了,主线程就在这个循环里转了,什么也干不了

Sleep(6000);
onpaint();

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧