在Form1的.h的private加上:
1 |
void __fastcall ClipboardChanged(TMessage& Msg); |
在Form1的.h的public加上:
1 2 3 |
BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_DRAWCLIPBOARD,TMessage,ClipboardChanged) END_MESSAGE_MAP(TForm) |
在Form1的.cpp内加上:
1 2 3 4 5 6 7 |
void __fastcall TForm1::ClipboardChanged(TMessage& Msg) { POINT MousePos; GetCursorPos(&MousePos); PopupMenu4->PopupComponent=Form1; PopupMenu4->Popup(MousePos.x,MousePos.y); //一有变化,就弹出一个菜单,复制,剪切或清除都能引发此函数 } |
在Form1的.cpp内有一个ToolButton
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
void __fastcall TForm1::ToolButton9Click(TObject *Sender) { static HWND LastHandle; static bool clip=false; if(clip==true) { ToolButton9->Down=false; ChangeClipboardChain(Form1->Handle,LastHandle); //结束监视 } else { ToolButton9->Down=true; Clipboard()->Clear(); Application->Minimize(); LastHandle=SetClipboardViewer(Form1->Handle); //启动监视 } clip=!clip; } |