圖像的剪切是首先把圖像拷貝到剪貼板
下面一段程序表示了圖像的剪切
procedure TForm
var
ARect: TRect;
begin
Clipboard
with Image
begin
CopyMode := cmWhiteness;
ARect := Rect(
CopyRect(ARect
CopyMode := cmSrcCopy;
end;
end;
從剪貼板上粘貼圖像
程序清單如下
procedure TForm
var
Bitmap: TBitmap;
begin
if Clipboard
begin
Bitmap := TBitmap
try
Bitmap
Image
finally
Bitmap
end;
end;
end;
try…finally為資源保護塊
在這一節中我們要建立一個自己的剪貼板觀察程序
Windows允許用戶建立自己的剪貼板觀察程序
建立一個剪貼板觀察程序
procedure WMDrawClipboard(var Msg:TWMDrawClipboard)
message WM_DRAWCLIPBOARD;
可以響應WM_DRAWCLIPBOARD消息
我們將要建立的程序目的是把截獲到剪貼板上的位圖保存下來
為解決這些問題
部件關鍵屬性設計如下
ClipSaveForm:
Caption=
Panel
Align =
Image
Align =
SaveDialog
FileEditStyle = fsEdit
FileName =
Filter =
InitialDir =
Title =
程序主窗口是TForm派生類TClipSaveForm的實例
type
TClipSaveForm = class(TForm)
SaveDialog
Image
Panel
Button
SpeedButton
SpeedButton
Button
procedure FormCreate(Sender: TObject)
procedure FormDestroy(Sender: TObject)
procedure Button
procedure Button
procedure SpeedButton
procedure SpeedButton
private
{ Private declarations }
MyBitmap: TBitmap; { 保存截獲的位圖 }
View: Boolean; { 判斷是否顯示 }
NextViewerHandle: HWND; { 下一剪貼板觀察器的句柄 }
procedure WMDrawClipboard(var Msg:TWMDrawClipboard)
message WM_DRAWCLIPBOARD;
procedure WMChangeCBChain(var Msg:TWMChangeCBChain)
message WM_CHANGECBCHAIN;
{ 響應Windows的剪貼板消息 }
public
{ Public declarations }
end;
窗口創建時
[
From:http://tw.wingwit.com/Article/program/Delphi/201311/25229.html