用TImage是可以的,不过要是窗体上有停靠的控件,比如工具栏停靠在顶部或者导航菜单停靠在左边,那么TImage显示的图片就会有一段与停靠控件高度或宽度相同的空白,不知道算不算Bug,要是放一个Panel并把TImage放在上面,那么子窗体就被压在Panel下面了,看样子这个法子行不通.
网上找了很多,都是罗里八嗦一大堆,什么钩子啊,消息啊,到最后调试下来还不能通过,气得我当场吐血半斤,功夫不负有心人,疯狂搜索小时后,居然让我找到一个,还特简单(据说是源自季世平),方法如下:
在Form的OnPaint事件里:
Canvas->StretchDraw(ClientRect,Image1->Picture->Graphic);
在OnResize事件里:
::InvalidateRect(ClientHandle,NULL,true);
搞定!这里用到了一个加载了图片的TImage控件,不过要是不想这么做,改起来也很简单,自己琢磨吧.