0

我正在使用以下代码将背景图像设置为面板。但是没有任何东西被设置为背景。我做事正确吗?如何为面板、表单或容器设置背景图像?

Panel* pBgPanel = new Panel;
pBgPanel->Construct(*pLayout, Rectangle(10, 10, 320, 320));
AddControl(*pBgPanel);

Image bgImage;
bgImage.Construct();
Osp::Graphics::Bitmap * bgBitmap;
bgBitmap = bgImage.DecodeN(L"/Home/bg.png", BITMAP_PIXEL_FORMAT_ARGB8888);

Canvas* pCanvas = pBgPanel->GetCanvasN();
pCanvas->DrawBitmap(*(new Point(0,0)),*bgBitmap);
pCanvas->Show();
4

1 回答 1

2

您必须制作自己的面板(class MyPanel : public Panel {})然后覆盖功能virtual void OnDraw (void) ,您可以将位图绘制到画布上

不要忘记调用 OnDraw 的基础Panel::OnDraw();来绘制面板上的组件;-)

于 2011-11-14T16:51:19.730 回答