用bitblt画图,可是画出来的图片好像被分割了,哪位高人指点一下,谢谢!!!图片见下面的连接
http://www.czvc.com/bbs/showthread.asp?threadid=4027

解决方案 »

  1.   

    谢谢楼上的回答。
    图片是自己用程序作的
    slim_bool
    PeerTestApp_MakePixMap(TPeerTestApp *self)
    {
    slim_int bpp;
    slim_int w, h, size;
    void *pixmap; switch(self->fScreenInfo.fPixelMapType){
    case SLIM_WWWPIXMAP_ARGB32:
    case SLIM_WWWPIXMAP_RGB16:
    bpp = sizeof(TColor);
    break;
    case SLIM_WWWPIXMAP_ARGB12:
    case SLIM_WWWPIXMAP_RGB16MASK:
    case SLIM_WWWPIXMAP_ARGB16:
    case SLIM_WWWPIXMAP_SPECIAL16:
    case SLIM_WWWPIXMAP_SPECIAL16MASK:
    case SLIM_WWWPIXMAP_RGB32:
    case SLIM_WWWPIXMAP_SPECIAL32:
    case SLIM_WWWPIXMAP_SPECIAL32MASK:
    default:
    /* not supported */
    return slim_false;
    } w = self->fScreenInfo.fWidth;
    h = self->fScreenInfo.fHeight / 4; size = h * SLIM_ROUNDUP(bpp * w, self->fScreenInfo.fScanLineAlign); pixmap = nmcsMemoryAllocPeer(size);
    if(!pixmap){
    return slim_false;
    }
    self->fPixMap       = pixmap;
    self->fPixMapWidth  = w;
    self->fPixMapHeight = h;
    slim_memset(pixmap,0,size);
    PeerTestApp_FillPixMap(self);
    return slim_true;
    }void
    PeerTestApp_FillPixMap(TPeerTestApp *self)
    {
    slim_int x;
    slim_int y;
    slim_int w;
    slim_int bpp;
    TColor *p;
    TColor *q; bpp = 4;
    switch(self->fScreenInfo.fPixelMapType){
    case SLIM_WWWPIXMAP_ARGB32:
    case SLIM_WWWPIXMAP_RGB16:
    {
    q = self->fPixMap;
    w = self->fPixMapWidth;
    for(y = 0; y < self->fPixMapHeight; y++){
    for(x = 0; x < self->fPixMapWidth; x++){
    p = q + x + y * w; /* Ugh! */
    *p = SLIM_COLOR_PINK;
    }
    }
    }
    break;
    case SLIM_WWWPIXMAP_ARGB12:
    case SLIM_WWWPIXMAP_RGB16MASK:
    case SLIM_WWWPIXMAP_ARGB16:
    case SLIM_WWWPIXMAP_SPECIAL16:
    case SLIM_WWWPIXMAP_SPECIAL16MASK:
    case SLIM_WWWPIXMAP_RGB32:
    case SLIM_WWWPIXMAP_SPECIAL32:
    case SLIM_WWWPIXMAP_SPECIAL32MASK:
    default:
    /* not supported */
    break;
    }
    }