| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1797 人关注过本帖
标题:TransparentBlt函数调用来贴图透明显示没有效果怎么办?图片大小是LoadImag ...
只看楼主 加入收藏
情绪小妖精
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-6-4
收藏
 问题点数:0 回复次数:1 
TransparentBlt函数调用来贴图透明显示没有效果怎么办?图片大小是LoadImage中的大小
程序代码:
//初始化
BOOL Game_Init(HWND hwnd)
{
    g_hdc = GetDC(hwnd);
    g_hBackGround = (HBITMAP)LoadImage(NULL, L"bg.bmp", IMAGE_BITMAP, WINDOW_WIDTH, WINDOW_HEIGHT, LR_LOADFROMFILE);
    g_hSprite1 = (HBITMAP)LoadImage(NULL, L"character1.bmp", IMAGE_BITMAP, 535, 650, LR_LOADFROMFILE);
    g_hSprite2 = (HBITMAP)LoadImage(NULL, L"character2.bmp", IMAGE_BITMAP, 506, 650, LR_LOADFROMFILE);
    g_mdc = CreateCompatibleDC(g_hdc);
    Game_Paint(hwnd);
    ReleaseDC(hwnd, g_hdc);
    return TRUE;
}

//在函数中进行绘制操作
VOID Game_Paint(HWND hwnd)
{
    SelectObject(g_mdc, g_hBackGround);
    BitBlt(g_hdc, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT, g_mdc, 0, 0, SRCCOPY);
    SelectObject(g_mdc, g_hSprite1);
    TransparentBlt(g_hdc, 0, WINDOW_HEIGHT - 650, 535, 650, g_mdc, 0, 0, 535, 650, RGB(0, 0, 0));//设置RGB(0, 0, 0)为透明色
    
    SelectObject(g_mdc, g_hSprite2);
    TransparentBlt(g_hdc, 500, WINDOW_HEIGHT - 650, 506, 650, g_mdc, 0, 0, 506, 650, RGB(0, 0, 0));
}

//资源清理函数
BOOL Game_CleanUp(HWND hwnd)
{
    DeleteObject(g_hBackGround);
    DeleteObject(g_hSprite1);
    DeleteObject(g_hSprite2);
    DeleteDC(g_mdc);
    return TRUE;
}
搜索更多相关主题的帖子: 函数 透明 大小 HWND RGB 
2018-06-04 15:15
情绪小妖精
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-6-4
收藏
得分:0 
用三缓冲技术解决了,虽然没人,但还是谢谢大家了!
2018-06-04 15:52
快速回复:TransparentBlt函数调用来贴图透明显示没有效果怎么办?图片大小是Loa ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027088 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved