那么如何加载这些资源到应用程序中呢?
但是windows建议使用loadimage
下面举个例子,下面是我导入的一个资源:
然后加载它,代码如下:
static HBITMAP hbmp;
case WM_DESTROY:
PostQuitMessage(0);
if (hbmp)
{
DeleteObject(hbmp);
}
break;
case WM_CREATE:
{
//调用时机:窗口创建成功,CreateWindow返回前调用
HWND btn = CreateWindow(L"button", L"普通按钮", WS_CHILD | WS_VISIBLE | BS_BITMAP, 15, 15, 120, 60, hwnd, (HMENU)1001, ((LPCREATESTRUCT)lparam)->hInstance, NULL);
//HBITMAP hbmp = (HBITMAP)LoadImage(NULL, L"C:\\Users\\Microsoft\\Desktop\\btn.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
hbmp = (HBITMAP)LoadBitmap((LPCREATESTRUCT(lparam))->hInstance, MAKEINTRESOURCE(IDB_BITMAP2));
SendMessage(btn, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hbmp);
}
结果:
接下来改变应用程序的图标
下面是我导入的图标
结果:
接在光标,鼠标
加载字符串表
示例如下:
case WM_CREATE:
{
//调用时机:窗口创建成功,CreateWindow返回前调用
wchar_t strTitle[24] = { 0 };
LoadString(((LPCREATESTRUCT)lparam)->hInstance, IDS_STRING106, strTitle, sizeof(strTitle));
HWND btn = CreateWindow(L"button", strTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 15, 15, 120, 60, hwnd, (HMENU)1001, ((LPCREATESTRUCT)lparam)->hInstance, NULL);
//HBITMAP hbmp = (HBITMAP)LoadImage(NULL, L"C:\\Users\\Microsoft\\Desktop\\btn.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
hbmp = (HBITMAP)LoadBitmap((LPCREATESTRUCT(lparam))->hInstance, MAKEINTRESOURCE(IDB_BITMAP2));
SendMessage(btn, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hbmp);
}
结果: