注册 登录
编程论坛 C++教室

调用BitBlt()无法显示图片,很简单的一个例子怎么都调不出来

powers0010 发布于 2017-06-04 18:45, 3019 次点击
//------------------------【全局变量声明区】---------------
HDC g_hdc=NULL,g_mdc=NULL;//设备环境DC及内存环境DC
HBITMAP g_hBitmap=NULL;

。。。。。。。。。。。。。。

调用Game_Init(hwnd)无法显示图片

BOOL Game_Init(HWND hwnd)
{
    g_hdc = GetDC(hwnd);//获取设备环境句柄
    //-------------【1 加载位图】-----------
    g_hBitmap=(HBITMAP)LoadImage(NULL,L"beijin.bmp",IMAGE_BITMAP,WINDOW_WIDTH,WINDOW_HEIGHT,LR_LOADFROMFILE);
    //加载位图
    //-------------【2 建立兼容DC】-------------
    g_mdc=CreateCompatibleDC(g_hdc);

    Game_Paint(hwnd);
    ReleaseDC(hwnd,g_hdc);   
    return TRUE;
}

void Game_Paint(HWND hwnd)
{
    //--------------------【3 选用位图对象】----------
    SelectObject(g_mdc,g_hBitmap);//将位图对象选入内存DC
    //--------------------【4 贴图 】-----------------
    BitBlt(g_hdc,0,0,WINDOW_WIDTH,WINDOW_HEIGHT,g_mdc,0,0,SRCCOPY);//函数贴图

}
2 回复
#2
powers00102017-06-04 22:08
已解决,不是程序问题,是图片问题,把jpg格式图片后缀直接改成bmp在程序里面好像会识别不了。
#3
yangfrancis2017-06-05 15:48
我也遇到过。很多问题都是实践中发现并需要自己想法解决
1