1、正规的方法,是注册创建APP BAR,即任务条。能设置诸如显示位置、大小、是否
自动隐藏等属性,总之与windows的任务栏一模一样。具体可查看shell编程的资料。
东方快车似乎并没有采用这种方法。
2、非正规的方法,建一个没有边框的窗口,显示位置定在顶部。并设为top most
,判断鼠标移进移出,从而改变窗体的高度。但不能为0。
另外还有一点就是窗体的拖动,这很容易
在form_mousedown 中加入
releasecapture;
sendmessage (form1.handle,wm_syscommand,sc_move or htcaption,0 );
3、抓 图 实 际 上 是 位 图 的 复 制
首 先 建 立 一 个 Form, 在 uses部 分 加 上 Clipbrd单 元 。
然 后 在 Click事 件 中 输 入 以 下 代 码 :
procedure TForm1.FormClick(Sender: TObject);
var winHWND, hCur:integer;
winDC:integer;
rect:TRect;
AFormat : Word;
AData,APalette : THandle;
pt:TPoint;
fBitmap:TBitmap;
begin
winHWND := GetDesktopWindow();
winDC := GetDC(winHWND);
GetWindowRect(winHWND, rect);
fBitmap := TBitmap.create;
fBitmap.width := rect.right-rect.left;
fBitmap.height := rect.bottom-rect.top;
BitBlt(fBitmap.canvas.handle, 0, 0, fBitmap.width, fBitmap.height, winDC, 0, 0, SRCCOPY);
ReleaseDC(winHWND, winDC);
fBitmap.SaveToClipBoardFormat(AFormat,AData,APalette);
Clipboard.SetAsHandle(AFormat,AData);
end