关于MDI主窗口显示图象的问题(50分)

  • 主题发起人 主题发起人 shuiquan
  • 开始时间 开始时间
S

shuiquan

Unregistered / Unconfirmed
GUEST, unregistred user!
我在MDI主窗口的Client区里要显一幅图像(用Image控件),
在设计状态时图像正常显示,编译运行时却什么都没有。各位
能否赐教。
 
wzs的一行之道:
在Form中添加Image控件
设BMP图象
name为 IMG_BK //好像别的也行
在Foem的Create事件中写入
Self.brush.bitmap:=img_bk.picture.bitmap;
 
别忘了调用Update方法。
 
查以前的问题
 
检查FORM的owner属性,向owner的canvas里画
 
unit P_form;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FClientInstance,
FPrevClientProc : TFarProc;
procedure ClientWndProc(VAR Message: TMessage);
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ClientWndProc(VAR Message: TMessage);
var
MyDC : hDC;
Ro, Co : Word;
begin
with Messagedo
case Msg of
WM_ERASEBKGND:
begin
MyDC := TWMEraseBkGnd(Message).DC;
for Ro := 0 TO ClientHeight DIV Image1.Picture.Heightdo
for Co := 0 TO ClientWIDTH DIV Image1.Picture.Widthdo
BitBlt(MyDC, Co*Image1.Picture.Width, Ro*Image1.Picture.Height,
Image1.Picture.Width, Image1.Picture.Height,
Image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
Result := 1;
end;
else
Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam, lParam);
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
FClientInstance := MakeObjectInstance(ClientWndProc);
FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
end;

end.
 
同意hubdog的方法,我也是这样用.
 
rss 的很简单
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
543
import
I
I
回复
0
查看
543
import
I
后退
顶部