相关疑难解决方法(0)

如何添加透明的PNG作为工具栏图标?

我的意图是在Win32中创建一个包含透明图标的工具栏。我已经尝试使用以下代码创建一个带有自定义图像的按钮的简单工具栏:

// Create the toolbar
HWND hToolbar = CreateWindow(TOOLBARCLASSNAME,
                             NULL,
                             WS_CHILD | TBSTYLE_FLAT | TBSTYLE_AUTOSIZE | TBSTYLE_LIST | CCS_BOTTOM,
                             0, 0, 0, 0,
                             hwnd,
                             NULL,
                             ghInstance, // <-this is the HINSTANCE of the application
                             NULL);

// Set the font (this cannot be the problem)
SendMessage(hToolbar,
            WM_SETFONT,
            (WPARAM)hFontBold,
            static_cast<LPARAM>(MAKELONG(TRUE, 0)));

auto hImagelist = ImageList_Create(32, 32,ILC_COLOR24 | ILC_MASK, 1, 0);

HBITMAP bitmap = static_cast<HBITMAP>(LoadImage(ghInstance,
    /* ID_IMG_SPAWN is my custom resource -> */ MAKEINTRESOURCE(ID_IMG_SPAWN), 
                                                IMAGE_BITMAP,
                                                32, 32,
                                                NULL));
ImageList_AddMasked(hImagelist,
                    bitmap,
                    RGB(255,255,255) /* white …
Run Code Online (Sandbox Code Playgroud)

c++ winapi png imagelist bmp

5
推荐指数
0
解决办法
246
查看次数

如何使用LoadImage和StretchDIBits绘制PNG图像?

(这与如何使用Win32/GDI加载PNG图像的问题有关(如果可能,没有GDI +)?)

大家好,

我想知道,鉴于你有一个PNG资源嵌入带有ID的二进制文件中IDB_PNG1,并且LPDRAWITEMSTRUCT要绘制(这意味着你有HDC目标的矩形和矩形),你如何使用这个图像绘制到屏幕上StretchDIBits?我曾经BitBltTransparentBlt以前StretchDIBits一起工作,但似乎工作方式不同,LoadImage似乎不适用于PNG.

谢谢!

(注意:我使用的语言是C++,但这并不太重要...... C,C#,Visual Basic等都没问题;我只是想弄清楚步骤,而不是确切的代码.)

c++ png gdi image stretchdibits

3
推荐指数
1
解决办法
1万
查看次数

在Microsoft Visual C++(而不是托管代码)中如何将PNG打印到打印机?

我想做的事情似乎简单直接,我希望从Microsoft Visual C++(非托管代码)打印到打印机的PNG文件.

c++ printing

-3
推荐指数
1
解决办法
1490
查看次数

标签 统计

c++ ×3

png ×2

bmp ×1

gdi ×1

image ×1

imagelist ×1

printing ×1

stretchdibits ×1

winapi ×1