回 帖 发 新 帖 刷新版面

主题:救命呀!!快进来帮帮忙!!!

我在编图形程序(用的是borland c++,在dos地下编程)时遇到了一个问题:我想将图形(比如说一个波形)画在一个区域内,而不能超出这个区域,请问用什么方法?
我现在用setviewpout()函数来做,但是我怎么才能取消当前设定的这个图形区域呢?
比如说我当前调用了setviewport(100,100,300,300);之后我想回到setviewport(0,0,640,480),为什么不行呢?请高手教教小弟!谢谢了!!

回复列表 (共3个回复)

沙发

class cGraph
   {
private :
    struct viewporttype m_sViewInfo;

public :
    int SetViewPort(int,int,int,int,int);
    int ReleaseViewPort();
   }    
int cGraph::SetViewPort(int left,int top,int right,int bottom,int style)
   {
getviewsettings(&m_sViewInfo);
setviewport(left,top,right,bottom,style);
return 0;
   }

int cGraph::ReleaseViewPort(void)
   {
setviewport(m_sViewInfo.left,m_sViewInfo.top,
m_sViewInfo.right,m_sViewInfo.bottom,
m_sViewInfo.clip);
return 0;
   }

板凳

谢谢!!!

3 楼

其实有一个直接原因,就是那个坐标超出了范围,最大应为
(0,0,639,479)。

我来回复

您尚未登录,请登录后再回复。点此登录或注册