CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

有时候,画出来的线条,在窗口内怎么总是闪呢?请教

楼主yohua(叫花子)2005-06-04 14:18:58 在 VC/MFC / 界面 提问

有时候,画出来的线条,在窗口内怎么总是闪呢?请教  
   
  我的在对话框里,一个STATIC内画图,用的是WM_PAINT消息,有时候就看不到我想看到的图形,有时候图形一直闪个不停。怎么办? 问题点数:0、回复次数:5Top

1 楼rockersz(世上的无奈需要我去忍耐...)回复于 2005-06-04 14:21:39 得分 0

要看看你的代码才知道,可能你的程序中不停地发送WM_PAINT消息Top

2 楼yohua(叫花子)回复于 2005-06-04 14:26:31 得分 0

 
  void   CTreeDlgDlg::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();  
  }  
  CStatic*   pStatic   =   (CStatic*)GetDlgItem(IDC_STATIC);  
  CDC*   pDC   =   pStatic->GetDC();  
  CRect   StaticRect;  
  pStatic->GetClientRect(StaticRect);  
  CBrush   BkBrush;  
  BkBrush.CreateSolidBrush(RGB(0,0,0));  
  pDC->FillRect(&StaticRect,&BkBrush);  
  if(m_Str!="")  
  {  
  CPen   WrtPen;  
  WrtPen.CreatePen(PS_SOLID,1,RGB(255,255,255));  
  CPen*   OldPen;  
  OldPen   =   pDC->SelectObject(&WrtPen);  
  pDC->MoveTo(150,100);  
  pDC->LineTo(100,250);  
  pDC->SelectObject(OldPen);  
  }  
  ReleaseDC(pDC);  
   
  }  
  其中的m_Str是控制的字符串,就是这样的。你说的对   就是不停的发送消息       我不知道怎么该,,帮帮我。Top

3 楼o1n(小毛子)回复于 2005-06-04 17:27:05 得分 0

直接在C***View::OnDraw(CDC*   pDC)里画呀Top

4 楼dawndu(东南飞)回复于 2005-06-05 00:41:05 得分 0

使用双缓冲!Top

5 楼xlzxlich(阳光)回复于 2005-06-05 01:31:03 得分 0

把  
        CPaintDC   dc(this);   //   device   context   for   painting  
  移到  
        if   (IsIconic())  
  外面。  
   
  Top

相关问题

  • 怎样才能画线条
  • 如何在面板(panel)中画线条?
  • 画线条用哪个控件啊
  • 用VB直接在桌面上画线条怎么画
  • 怎样画一个带箭头的线条,然后这个线条能响应鼠标事件?
  • 如何没有闪烁的移动线条
  • 关于画图的问题(线条和字符串),谢谢!
  • Q:如何在其他程序的窗口中画线条?
  • 请问在vb画图时,怎样设置线条的粗细?
  • 有关灰度图上画彩色线条的问题。

关键词

  • 消息
  • dc
  • bkbrush
  • staticrect
  • wrtpen
  • pdc
  • cyicon
  • pstatic
  • cxicon
  • rect

得分解答快速导航

  • 帖主:yohua

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo