好的,我想将图像连同文本一起添加到按钮,而不在我的 RC 文件中创建按钮。这甚至可能吗,还是我需要使用 RC 文件来使按钮能够在其中放入图像?我的图像在“resource.h”中是#define
d,图像在“resources.rc”中声明。“main.cpp”和“resources.rc”都包含“resource.h”头文件。我真的不想使用资源制作按钮,但如果这是制作带有图像和文本的按钮的唯一方法,那么我会这样做。我只需要知道如何将图像放入 WinAPI 中的按钮中。
问问题
3052 次
1 回答
0
更新:
将清单文件添加到您的应用程序,清单文件应命名为
YourApp.exe.manifest
将此添加到您的清单文件中(有关清单文件的更多信息,请参见http://msdn.microsoft.com/en-us/library/bb773175%28VS.85%29.aspx):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApplication" type="win32" /> <description>Your application description here.</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
将您的应用程序与
ComCtl32.lib
将清单添加到您的应用程序资源文件
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"
InitCommonControls()
在 WinMain 开头调用
结束更新
按钮创建的示例代码(IMAGE + TEXT),由于 LoadBitmap,容易发生内存泄漏:
HWND hwnd_button = CreateWindowEx( 0, "BUTTON", //ascii "Button text", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 10, 145, 50, 50, hwnd_parent, NULL, //GetModuleHandle(NULL) (HINSTANCE)GetWindowLong(hwnd_parent, GWL_HINSTANCE), NULL); SendMessage((HWND) m_hWndButton, (UINT) BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1)));
于 2012-11-27T15:49:39.783 回答