还是屏保问题(300分)

  • 主题发起人 主题发起人 pengxiaolin
  • 开始时间 开始时间
问题2已解决,多谢了
问题1未解决,请继续指教:
if para1='/P' then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
{aCanvas := TCanvas.Create;
aCanvas.Handle:= GetDC(strtoint(para2 ));
aCanvas.CopyMode := cmSrcCopy;
acanvas.draw(0,0,form1.picshow.Picture.Bitmap); }
form1.hide;
//form1.parentwindow:=strtoint(para2);

form1.visible:=false;
hprewnd:= StrToInt( para2 );
WHILE NOT IsWindowVisible( hPreWnd ) DO
Application.ProcessMessages;
GetWindowRect( hPreWnd, Rect1 );
Rect1 := Rect( 0, 0, Rect1.Right-Rect1.Left, Rect1.Bottom-Rect1.Top );
sCanvas := TCanvas.Create;
sCanvas.Handle:= GetDC( hPreWnd );
sCanvas.CopyMode := cmSrcCopy;
WHILE IsWindowVisible( hPreWnd ) DO
BEGIN
formscreen:=tbitmap.create;
Rect1:= Rect( 0, 0, form1.width,form1.height );
formscreen.canvas.copyrect(rect2,form1.canvas,rect2);//把整个屏幕复制到BITMAP中
sCanvas.Draw(0,0, formscreen );
Sleep(1);
Application.ProcessMessages;
END;
sCanvas.Free;
以上程序执行小窗口没任何反映,是什么问题?
 
300分的题呀,怎么没什么人参与?
 
第一个问题解决了。但新的问题又来了:
1。小屏幕预览时在下方的任务栏上会出现屏保的程序名,怎么才能屏掉它?
2。我用的图象文件是jpg格式的,怎么才能从资源文件(.RES)文件中读出来?
 
1、容易,在FormShow中调用如下语句就可以了。
ShowWindow(Application->Handle,SW_HIDE);

2、正在研究,请耐心等待。。。
 
妈的,那个Resource Builder不能直接加Jpg图像,只好手工编写RC文件,再使用Brcc32进行
编译成RES文件。JpgRes.RC内容:

JPG1 jpg F:/Inprise/CBuilder5/Projects/Test14/032_0.jpg
-------------------------------------------------------------------------------
应用代码:

#include <Jpeg.hpp>

TResourceStream *JpgStream;
TJPEGImage *Img;

JpgStream = new TResourceStream((unsigned int)HInstance,"JPG1","jpg");
Img = new TJPEGImage();
Img->LoadFromStream(JpgStream);

Image1->Picture->Assign(Img);

delete Img;
delete JpgStream;

 
BCB_FANS:昨晚已经全部搞定,忘了上来跟你说,不好意思,让你多费心了,分都给你了。
看来还是要多翻翻书。有些问题想来复杂,其实很简单。
 
多人接受答案了。
 
后退
顶部