我是以在资源文件中创建了一个100*100的资源位图
然后选择进内存场景中 再BitBit在窗体上显示出来.现在 我要在内存中创建一个8000*8000的位图 这样以资源文件方式创建是不可能的
所以 能不能直接用函数在内存中创建?然后bitbit在窗中上?我创建的是HDC.

解决方案 »

  1.   

    你是想要将那图片的全部内容都一次显示在输出设备上吗?
    如果那样,就要根据输出设备的分辨率进行采样处理,比如你的显示器为1024*768,那么一个简单的采样率的计算就是 横向为: 8000 / 1024 = 7.8125(每隔8个象素取一个值),                 纵向为:8000 / 768 = 10.41666...(每隔11个象素取一个值) ,最后出来的小数,看你用什么样的策略来处理啦,当然你可能先要在内存里开辟一个1024*768的区域来缓存一下,然后显示出来就可以了.
    如果你是一屏显示一部分,也就是不进行压缩采样的话,那么就要找到图片在内存的起始位置先,然后在在那个函数里指定要显示的区域的大小 width * height 然后把起始地址的指针传递给显示函数就可以啦,然后要显示别的部分,就是乘以宽和高的偏移量,比如8*width,就是右移了八个屏幕宽,如果你的width和屏幕一样宽的话,总之只是一些对数据的偏移和寻址操作,只要你能找到你想要显示的区块的左上角的地址,然后你就可以指定大小以及屏幕上的位置来显示它了,当然还要注意内存是否是连续的.
    以上只是一个思路啦,你具体用什么实现随你啦
      

  2.   

    BG = CreateBitmap(1000,1000,0,256,0);
    SelectObject(MemDC,BG);//选择BG对象到MemDC环境中
    BitBlt(dc.m_hDC,0,0,32,32,MemDC,0,0,SRCCOPY);//在窗体上绘制MemDC环境中的图形显示出来是黑色的
    但我再用语句
    BitBlt(MemDC,0,0,32,32,TexDC,0,0,SRCCOPY);
    BitBlt(dc.m_hDC,0,0,32,32,MemDC,0,0,SRCCOPY);//在窗体上绘制MemDC环境中的图形
    将另一个场景中的图形复制到MemDC中的时候就显示不出来 这是怎么回事?
      

  3.   

    用内存缓冲区来实现超大图片的显示。
    /*
    将图形绘制到内存图形缓冲区中,然后copy到屏幕上
    #内存缓冲区的大小固定,且不超过图片实际大小。
    #当图片小于内存缓冲区最大面积时,内存缓冲区设置和图片大小相同
    #当缩放窗体时,需要刷新屏幕,即拷贝内存缓冲区到屏幕
    #当移动窗体视口时,如果超出内存缓冲区,则更新缓冲区内容当图片大小大于最大缓冲区的时候,需要采取缓冲图片数据的技术如下图
    当移动可视屏幕界面超出缓冲图片内容的时候,需要在界面所处图片位置
    重绘n(一般为2)倍宽和高的缓冲区    (0,0)
        .__________________________________
    |            |          |          |
    |            |          |   实     |
    |  屏   幕   |  缓      |          |
    |            |  冲      |   际     |
    |____________|  图      |          |
    |               片      |   图     |
    |_______________________|          |
    |                           片     |
    |                                  |
    |__________________________________|   图一
        (0,0)
    .__________________________________
    |     (m_nBufPicX,m_nBufPicY)      |
    |     ._______________________     |
    |     |  (m_nXDelta,m_nYDelta)|    |
    |     |    .____________      |    |
    |     |    |            |     |    |
    |     |    |  屏    幕  |     |    |
    |     |    |            |     |    |
    |     |    |____________|     |    |
    |     |      缓 冲 图 片      |    |
    |     |_______________________|    |
    |                                  |
    |      实    际   图   片          |
    |__________________________________|

       图二*/