gpt4 book ai didi

C++ WinAPI 使用 DWM 在自定义窗口框架上显示位图

转载 作者:行者123 更新时间:2023-11-30 05:40:56 38 4
gpt4 key购买 nike

我引用 Custom Window Frame Using DWM 使用 DWM 创建了一个带有自定义窗口框架的窗口.我尝试使用 StretchBlt 将位图添加到标题栏。然而,它没有正确显示。如果绘制在框架上,图像将变亮:

enter image description here

如果框架是黑色的,则图像可以正常显示。你是如何解决这个问题的?

HDC hdc;
PAINTSTRUCT ps;
HBITMAP hbm=(HBITMAP)LoadImage(NULL,"C:\\Users\\admin\\Desktop\\Bitmap32.bmp",
IMAGE_BITMAP,166,160,LR_LOADFROMFILE);
hdc=BeginPaint(hWnd,&ps);
HDC hdcMem=CreateCompatibleDC(hdc);
SelectObject(hdcMem,hbm);
StretchBlt(hdc,0,0,166,160,hdcMem,0,0,166,160,SRCCOPY);
DeleteDC(hdcMem);
EndPaint(hWnd,&ps);

最佳答案

使用 GDI+ DrawImage()

Graphics graphics(hdc);
Image image(L"image link");
graphics.DrawImage(&image,0,0);

要解决真正的问题,使用SetLayeredWindowAttributes()设置透明度键。

SetWindowLong(hWnd,GWL_EXSTYLE,WS_EX_LAYERED);
SetLayeredWindowAttributes(hWnd,RGB(200,201,202),0,LWA_COLORKEY);

关于C++ WinAPI 使用 DWM 在自定义窗口框架上显示位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31314250/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com