稳定盈利的期货交易方法-量化趋势交易

alantop -专业量化投资者

爱好:量化投资,逆向工程,渗透
随笔 - 595, 文章 - 0, 评论 - 921, 引用 - 0
数据加载中……

从资源中加载显示位图,通过双缓冲的方法显示。

从文件加载位图 看这篇 http://www.cppblog.com/alantop/archive/2008/03/14/44414.html

如何使用下面的代码。
1. 把位图导入资源。
资源->入->选bmp类型->导入->从硬盘中选择导入的bmp图即可。导入后,自动生成ID为IDB_BITMAP1的资源Bitmap.
2. 把下面代码复制到视图的OnDraw(CDC* pDC)函数

    CBitmap bmp;
    
if (bmp.LoadBitmap(IDB_BITMAP1))
    {
        
// Get the size of the bitmap
        BITMAP bmpInfo;
        bmp
.GetBitmap(&bmpInfo);
        
        
// Create an in-memory DC compatible with the
        // display DC we're using to paint

        CDC dcMemory;
        dcMemory
.CreateCompatibleDC(pDC);


        
        
// Select the bitmap into the in-memory DC
        CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp);
        
        
// Find a centerpoint for the bitmap in the client area
        CRect rect;
        GetClientRect(
&rect);
        int nX 
= rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
        int nY 
= rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;

        POINT ptstart
, ptend;
        ptstart
.= ptstart.= 0;
        ptend
.= ptend.= 500;
        
        
        dcMemory
.MoveTo(ptstart);
        dcMemory
.LineTo(ptend);
        

        
        
// Copy the bits from the in-memory DC into the on-
        // screen DC to actually do the painting. Use the centerpoint
        // we computed for the target offset.

        pDC->BitBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 
            
0, 0, SRCCOPY);
        
        dcMemory
.SelectObject(pOldBitmap);

        SIZE si;
        si
.cx = bmpInfo.bmWidth;
        si
.cy = bmpInfo.bmHeight;
        SetScrollSizes(MM_TEXT
, si);
    }
    
else
        TRACE0(
"ERROR: Where's IDB_BITMAP1?\n");

3. 代码的操作思路.
   双缓冲,简单的说就是把画图的所有动作都在内存DC上完成,然后通过BitBlt拷贝到屏幕DC上。
   a. 首先建立一个CBitmap对象
   b. 然后,建立一个和显示设备兼容的内存DC
   c. 然后把CBitmap放在建立的内存DC中
   d. 然后,在内存DC上做一些画图的动作
   e. 将内存DC中的东西,显示在屏幕上
4. 代码中的一些其他操作
   a. 我们常用SelectObject把新的东西选入。把老的东西作为返回值,保存。再使用完毕后,在用SelectObject重新启用老的东西
   b. 在代码里面有设置滚动条的地方。 使用CScrollView类作为基类。给SIZE结构体赋值,然后调用SetScrollSizes做设置,滚动条就会自动计算响应的。

posted on 2008-03-13 20:41 AlanTop 阅读(2679) 评论(1)  编辑 收藏 引用 所属分类: 图像处理

评论

# re: 从资源中加载显示位图,通过双缓冲的方法显示。  回复  更多评论   

你在研究图形开发啊?
2008-03-15 17:26 | FEIM Studios

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理