CClientDC dc(this);
CLine kkk;
kkk.m_ptFrom.x=0;
kkk.m_ptFrom.y=0;
kkk.m_ptTo.x=1000;
kkk.m_ptTo.y=1000;
kkk.Draw(&dc);
其中class CLine : public CObject
{
public:
Draw(CDC *pDC);
CLine(CPoint m_ptFrom,CPoint m_ptTo);
CLine();
virtual ~CLine(); CPoint m_ptTo;
CPoint m_ptFrom;
};其中draw函数
CLine::Draw(CDC *pDC)
{
pDC->MoveTo(m_ptFrom);
pDC->LineTo(m_ptTo);
}
为什么画不出来图呢?按照我的想象应该是一条从(0,0)到(1000,1000)的直线的。
CLine kkk;
kkk.m_ptFrom.x=0;
kkk.m_ptFrom.y=0;
kkk.m_ptTo.x=1000;
kkk.m_ptTo.y=1000;
kkk.Draw(&dc);
其中class CLine : public CObject
{
public:
Draw(CDC *pDC);
CLine(CPoint m_ptFrom,CPoint m_ptTo);
CLine();
virtual ~CLine(); CPoint m_ptTo;
CPoint m_ptFrom;
};其中draw函数
CLine::Draw(CDC *pDC)
{
pDC->MoveTo(m_ptFrom);
pDC->LineTo(m_ptTo);
}
为什么画不出来图呢?按照我的想象应该是一条从(0,0)到(1000,1000)的直线的。
解决方案 »
- UNICODE字符,用WriteFile写入文件后,回车换行为黑心方块,如何解决
- 数据是一定的,如何实现多窗口数据显示??
- [没入门者] 求 Visual Studio 开发VC++的程序,的实例 只要能编译通过出个界面就行了,就是 hello word 的那种程序 [ hello word 的那种程序]
- 在线求一个简单的SQL语句的写法,急等
- 请问如何开发多人共享的电子白板?
- 紧急求救 UDP通信中,在线的用户数目?
- CArray不能存放变长的结构吗??结构的操作符重载怎么写???????????在线!!!!!
- 如何在自己定义的函数中调用对话框?
- 紧急求助:使用VC通过ODBC访问SQL 7.0时为何无法取得总条数?!急死我了!!!!
- 用了一个全局函数,并重载,链接时出错如下,请大侠给看看吧
- 如何实现一个程序只运行一个实例啊?即任务管理器中只有一个进程。急啊
- 通过无线猫发送数据的AT指令怎么写?
CClientDC dc(this);也就是它得到是否是你想要画的那个区域的CDC指针
CLine kkk;
kkk.m_ptFrom.x=0;
kkk.m_ptFrom.y=0;
kkk.m_ptTo.x=1000;
kkk.m_ptTo.y=1000;
kkk.Draw(&dc);
我上面这段代码写在自己定义的一个对话框类里面,而我是想在view类中画出图形来,请问该怎么办:)
CClientDC dc(this);
改为
CDC* pDC = GetDC( );//对称你的Draw(CDC *pDC)
AfxGetMainWnd()->GetActiveView());
CDC* pDC = pView->GetDC( ); //U must Get the DC of your view firstly.
kkk.Draw(pDC); //then it is ok.
//if U do only like this, that is to say, CDC *pDC = this->GetDC();
//so, U get the dc of current dialog.
//what U draw is on dialog certainly.
F:\c++_study\wen1\DuanshuZ.cpp(88) : error C2039: 'GetActiveView' : is not a member of 'CWnd'
d:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(1899) : see declaration of 'CWnd'
为什么呢?希望allenhai1980(心蓝世界)或其它大虾多多指教,谢谢。
但你也要考虑到视图被刷新后(比如使用Alt+Tab切换)这个部分所画的图可能会丢失的啊!推荐的办法:1,所有的画图都在OnDraw()中作,通过调用Invalidate()来改变视图内容。
2,在外部画图的同时做好记录,深入浅出中的例程是这样做的:响应ButtonDown和ButtonUp消息画图,并同时将所有点记录在文档中,OnDraw()函数直接调用文档中数据画图,这样刷新时数据才不会丢失。