为什么用TextOut无法在对话框中输出文字?
我是在OnInitDialog函数中调用如下代码:CDC*pDc=GetDC();pDC->TextOut(10,20,"adasdasdasdasd");Release...
我是在OnInitDialog函数中调用如下代码:
CDC *pDc = GetDC();
pDC->TextOut(10, 20, "adasdasdasdasd");
ReleaseDC(pDc);
这样在对话框中什么都看不到.但是如果把着些代码移到OnPaint()中,字符串就能正常显示.请问用TextOut输出文字只能在OnPaint()才会有效么?
也就是说,只要一刷新,这些文字就没了?那有没有什么办法可以避免啊?我试过一些办法还是不成功,如在OnShowWindow()中或者自己添加了一个按纽,然后在按纽的处理函数OnButton()中执行以上代码,还是显示不出来....郁闷啊. 展开
CDC *pDc = GetDC();
pDC->TextOut(10, 20, "adasdasdasdasd");
ReleaseDC(pDc);
这样在对话框中什么都看不到.但是如果把着些代码移到OnPaint()中,字符串就能正常显示.请问用TextOut输出文字只能在OnPaint()才会有效么?
也就是说,只要一刷新,这些文字就没了?那有没有什么办法可以避免啊?我试过一些办法还是不成功,如在OnShowWindow()中或者自己添加了一个按纽,然后在按纽的处理函数OnButton()中执行以上代码,还是显示不出来....郁闷啊. 展开
6个回答
展开全部
你所看到的窗口在特定时候是会发生重绘的,之后OnPaint()函数会被调用,将窗口重新绘制,TextOut()或者其他函数绘制的问题或者图形将被搽除,但如果这些函数在OnPaint()或者在OnPaint()内所调用的函数,比如OnDraw()内,那么他们会再次调用,重新向窗口写入文本,或者绘制图形。你的感觉就是这些文本或者图形一直都在,其实他们在窗口重绘后再次绘制的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
OnInitDialog 这个时候对话框还没有出现 窗口从无到有都要发生重画 所以在OnPaint()这个响应窗口重画的函数中当然可以看到文字,
你还可以添加一个按钮,然后给这个按钮添加消息响应OnButton()
CClientDC dc(this);
dc.TextOut(10,10,"aaaa");
当你点击按钮的时候就可以看到文字了。
你还可以添加一个按钮,然后给这个按钮添加消息响应OnButton()
CClientDC dc(this);
dc.TextOut(10,10,"aaaa");
当你点击按钮的时候就可以看到文字了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般吧所有的显示相关操作都放在onpaint里面
就是说,如何paint一个显示区域由onpaint负责
何时paint以及在什么地方重新绘制图形由其他地方确定
OnInitDialog
的时候对话框还没有出现
当对话框出现后第一件事就是刷新,刷新的时候使用的是onpaint函数,这样,原来写的文字就没有了
祝你好运!
就是说,如何paint一个显示区域由onpaint负责
何时paint以及在什么地方重新绘制图形由其他地方确定
OnInitDialog
的时候对话框还没有出现
当对话框出现后第一件事就是刷新,刷新的时候使用的是onpaint函数,这样,原来写的文字就没有了
祝你好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
OnInitDialog
这个时候对话框还没有出现
然后刷新,原来写的文字就没有了
这个时候对话框还没有出现
然后刷新,原来写的文字就没有了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询