| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 766 人关注过本帖
标题:初学者 求解一个问题
只看楼主 加入收藏
wangchunbao
Rank: 2
等 级:论坛游民
帖 子:24
专家分:10
注 册:2010-11-6
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:3 
初学者 求解一个问题
下面是简单的 用鼠标绘制一条直线 的代码  运行过程中 绘制直线反映很慢  谁能帮忙看看啊  谢谢诶






#include "stdafx.h"
#include "sffg.h"

#include "sffgDoc.h"
#include "sffgView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSffgView

IMPLEMENT_DYNCREATE(CSffgView, CView)

BEGIN_MESSAGE_MAP(CSffgView, CView)
    //{{AFX_MSG_MAP(CSffgView)
    ON_COMMAND(ID_LINE, OnLine)
    ON_COMMAND(ID_NLINE, OnNline)
    ON_WM_LBUTTONDOWN()
    ON_UPDATE_COMMAND_UI(ID_LINE, OnUpdateLine)
    //}}AFX_MSG_MAP
    // Standard printing commands
    ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSffgView construction/destruction

CSffgView::CSffgView()
{
    // TODO: add construction code here
    m_bLine=FALSE;
    m_startX=m_startY=0;
    m_step=0;

}

CSffgView::~CSffgView()
{
}

BOOL CSffgView::PreCreateWindow(CREATESTRUCT& cs)
{
    // TODO: Modify the Window class or styles here by modifying
    //  the CREATESTRUCT cs

    return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CSffgView drawing

void CSffgView::OnDraw(CDC* pDC)
{
    CSffgDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CSffgView printing

BOOL CSffgView::OnPreparePrinting(CPrintInfo* pInfo)
{
    // default preparation
    return DoPreparePrinting(pInfo);
}

void CSffgView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
    // TODO: add extra initialization before printing
}

void CSffgView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
    // TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CSffgView diagnostics

#ifdef _DEBUG
void CSffgView::AssertValid() const
{
    CView::AssertValid();
}

void CSffgView::Dump(CDumpContext& dc) const
{
    CView::Dump(dc);
}

CSffgDoc* CSffgView::GetDocument() // non-debug version is inline
{
    ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSffgDoc)));
    return (CSffgDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSffgView message handlers

void CSffgView::OnLine()
{
    // TODO: Add your command handler code here
    CClientDC dc(this);
    m_bLine=TRUE;
    //dc.TextOut(100,100,"shif");
   
}

void CSffgView::OnNline()
{
    // TODO: Add your command handler code here
    CClientDC dc(this);
    m_bLine=FALSE;
   
}

void CSffgView::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: Add your message handler code here and/or call default
    CClientDC dc(this);
    if(m_bLine)
    {
        if(m_step==0)
        {
            m_startX=point.x;
            m_startY=point.y;
            m_step++;
        }
        else
        {
            dc.MoveTo(m_startX,m_startY);
            dc.LineTo(point.x,point.y);
            m_step=0;
        }
    }

   
    CView::OnLButtonDown(nFlags, point);
}

void CSffgView::OnUpdateLine(CCmdUI* pCmdUI)
{
    // TODO: Add your command update UI handler code here
    pCmdUI->SetRadio(m_bLine);
   
}
搜索更多相关主题的帖子: 求解 
2010-11-06 11:47
shafeilong
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:236
专家分:1434
注 册:2009-3-21
收藏
得分:20 
没什么大问题的  这个正常  难道说慢的不像样?延迟厉害?
2010-11-08 19:31
wangchunbao
Rank: 2
等 级:论坛游民
帖 子:24
专家分:10
注 册:2010-11-6
收藏
得分:0 
延迟的厉害啊 截了一张图说明一下:
图片附件: 游客没有浏览图片的权限,请 登录注册


当我在画直线后面加上一行文本输出的代码后就没有延迟的情况了;(估计其他代码也行)

如果没有那行代码 就会有延迟现象! 不解中.....
2010-11-20 19:54
C之家
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2010-9-14
收藏
得分:0 
这个编码方法程序在运行时就会出现延迟现象,其实C++不适合编写画图程序,这里你只要理解可以这么写就可以了
2010-11-20 20:53
快速回复:初学者 求解一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042922 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved