当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·菜鸟级问题 请各位指点    »显示摘要«
    摘要: 在看别人的程序 输入文本框(edit)后,按enter键,程序会跳转到保存按钮的(onclick)事件 我看过了 那个文本框的onkeypress事件是没有的!! 这是怎么回事 请问。。。。。。 ......
 ·vb程序中如何实现多线程    »显示摘要«
    摘要: 在msdn中怎么没有vb多线程的例子及论述呢? ......


GetDC()的一个问题

在Ondrow()中画图时用如下代码:  
  CDC*   p   =   GetDC(   );  
  for(int   t=   100;   t<150;   t++)  
  {  
  p->Ellipse   (i,j,k,f);  
  i--;  
  j--;  
  k--;  
  f--;  
  }  
    ReleaseDC(p);  
  出现两个语法问题,请各位指教:  
   
    error   C2660:   GetDC   :   function   does   not   take   0   parameters  
      error   C2660:   ReleaseDC   :   function   does   not   take   1   parameters  
 

NO.1   作者: houdy

在OnDraw中,你完全可以用CClientDC   dc(this);获得客户区的DC.而且不用调用ReleaseDC(),因为在CClientDC的析构函数中已经调用了。

NO.2   作者: houdy

如果你真的想用GetDC()的话,可以这样写:CDC*   pDC=CDC::GetDC();  
  可能编译器以为你调用了API函数GetDC(HWND   hWnd);

NO.3   作者: mydoom

OnDraw(CDC*   pDC)函数的参数里不是传过来一个CDC的指针了吗,那就是一个DC,就可以直接用吧  
  不用再GetDE()了吧     感觉是重复。用CClientDC   do(this)是实时响应吧,在OnDraw里已经得到pDC了   就不要用CClientDC   do(this)再建立一个了吧    
  我理解的对不对?

NO.4   作者: zhouyong0371

我这样没有问题:  
   
  void   CCDCView::OnLButtonDown(UINT   nFlags,   CPoint   point)    
  {  
  //   TODO:   Add   your   message   handler   code   here   and/or   call   default  
  int   i,   j,   k,   f;  
  i=50;  
  j   =   50;  
  k   =   200;  
  f   =   200;  
  CDC*   p   =   GetDC(   );  
  for(int   t=   100;   t<150;   t++)  
  {  
  p->Ellipse   (i,j,k,f);  
  i--;  
  j--;  
  k--;  
  f--;  
  }  
  ReleaseDC(p);  
  CView::OnLButtonDown(nFlags,   point);  
  }  
   
   
 


    摘要: 我对这个不是很清楚,谢谢 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE