15,980
社区成员
发帖
与我相关
我的任务
分享
void MenuEx::DrawMenuBack()
{
HWND hMenu =FindWindow(L"#32768",L"");
_instance = (HINSTANCE)GetWindowLong(_hWnd, GWL_HINSTANCE);
RECT menuRect;
GetWindowRect(hMenu,&menuRect);
HBITMAP bitmap = LoadBitmap(_instance,MAKEINTRESOURCE(IDB_MENU));
HDC dc = GetDC(hMenu);
HDC mdc = CreateCompatibleDC(dc);
SelectObject(mdc,bitmap);
BitBlt(dc,0,0,20,20,mdc,0,0,SRCCOPY);
ReleaseDC(hMenu,mdc);
}
调试发现,能正确获取到菜单的窗口句柄,加载图片也是成功加载了的,不知道是什么地方出问题了。
在GetDC 和ReleaseDC 之间不能正确绘制图片。难道还需要捕获菜单的消息处理过程,然后再ON_PAINT中来绘制.
MENUINFO mi = {sizeof(MENUINFO)};
mi.fMask = MIM_BACKGROUND;
mi.hbrBack = CreatePatternBrush(LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1)));
SetMenuInfo(hMenu, &mi);