回 帖 发 新 帖 刷新版面

主题:为什么打开位图一闪就没有了

我用按钮打开一幅位图,想让它显示在客户区一个指定的区域,但位图只在窗户区闪了一下就没有了,请问是什么原因呢?
程序代码如下:
HBITMAP    hBitmap;
HDC        hdc,hdcMem;
BITMAP    bitmap;
RECT    ClientRect;

hdc  = GetDC(hWnd);
GetClientRect(hWnd, &ClientRect);            // 获得客户区大小

hBitmap = LoadImage(hWnd);
        
if(hBitmap)
{
    GetObject(hBitmap, sizeof(BITMAP), &bitmap);
    hdcMem = CreateCompatibleDC(hdc);
    SelectObject(hdcMem, hBitmap);

    /*BitBlt(hdc, ClientRect.right/30, ClientRect.bottom*2/50, bitmap.bmWidth, bitmap.bmHeight, 
    hdcMem, 0, 0, SRCCOPY);*/
    StretchBlt(hdc,ClientRect.right/30, ClientRect.bottom*2/50,ClientRect.right/3, ClientRect.bottom*2/5,
        hdcMem,0,0,bitmap.bmWidth, bitmap.bmHeight,SRCCOPY);
    DeleteDC(hdcMem);
}
ReleaseDC(hWnd, hdc);

回复列表 (共6个回复)

沙发

是不是客户区被更新了

板凳

客户区被更新了。

3 楼

不会定义了一个局部位图吧~~

4 楼

这应该是没有在WM_PAINT 消息里

5 楼

windows每一次更新都会发送WM_PAINT消息,为了保证更新后图像依然正确显示,应该
在WM_PAINT下再显示一次。

6 楼

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即时网游、交友,娱乐游戏,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料
网商咨询 摩客天宇QQ 909065437 

我来回复

您尚未登录,请登录后再回复。点此登录或注册