关于屏幕保护程序的问题?(分不够可以再加)(50分)

  • 主题发起人 主题发起人 惟一
  • 开始时间 开始时间

惟一

Unregistered / Unconfirmed
GUEST, unregistred user!
我制作了一个屏幕保护程序,但我怎么样制作它的"预览窗口"??(就是在系统的屏幕保护程序
中选择了一个屏保后,在预览窗中显示出来).

请各位帮帮忙呀,,分不够可以加的.
 
过去有人问了,你可以查查过去的资料
是一篇很齐全的文章
因为我这里慢,就不能帮你找了
 
没有人知道吗?
 
看过一个VB的屏幕保护程序,看预览是要加个参数调用,具体忘了
 
来自delphi深度历险:
function PreviewWndProc(Wnd: HWND; Msg: UINT; WPARAM: Longint;
LPARAM: Longint): Integer; stdcall;
begin
case Msg of
WM_DESTROY:
begin
PostQuitMessage(0);
Result := 0;
end;
else
Result := DefWindowProc(Wnd, Msg, WPARAM, LPARAM);
end;
end;

procedure PreviewSaver;
const
PREVIEW_CLASSNAME = 'XEssayScreenSaverPreview';
var
WndClass: TWndClass;
MyWnd : HWND;
Msg : TMsg;
R : TRect;
begin
with WndClass do
begin
Style := 0;
lpfnWndProc := @PreviewWndProc;
cbClsExtra := 0;
cbWndExtra := 0;
HICON := 0;
HInstance := SysInit.HInstance;
HCURSOR := 0;
hbrBackground := 0;
lpszMenuName := nil;
lpszClassName := PREVIEW_CLASSNAME;
end;

Windows.RegisterClass(WndClass);

GetWindowRect(ParamHandle, R);

MyWnd := CreateWindow(PREVIEW_CLASSNAME, 'XEssaySaver',
WS_CHILD or WS_DISABLED or WS_VISIBLE, 0, 0,
R.Right - R.Left, R.Bottom - R.Top,
ParamHandle, 0, HInstance, nil);

with TDrawThread.Create(MyWnd) do // ?ミ笲??み磅︽狐
begin
// 癟?癹伴
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Terminate; // 挡?笲??み磅︽狐
end;

{ ??よ?爹??跌怠摸? }
UnregisterClass(PREVIEW_CLASSNAME, HInstance);
end;

end.
 
命令行传给你一个参数HWND,就是那个小窗口
你从HWND得到rect,hdc什么的,在里面画
 
可以给我一个例子吗,不管什么写的,都行,
 
深度历险那个例子有问题。在98环境下,有小BUG。
 
后退
顶部