龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

如何监视剪贴板

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
在Form1的.h的private加上: void __fastcall ClipboardChanged(TMessage 在Form1的.h的public加上: BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_DRAWCLIPBOARD,TMessage,ClipboardChanged) END_MESSAGE_MAP(TForm) 在Form1的.cpp内加上: void

  在Form1的.h的private加上:

  

void __fastcall ClipboardChanged(TMessage& Msg);

  

在Form1的.h的public加上:

  

BEGIN_MESSAGE_MAP

  

 MESSAGE_HANDLER(WM_DRAWCLIPBOARD,TMessage,ClipboardChanged)

  

END_MESSAGE_MAP(TForm)

  

在Form1的.cpp内加上:

  

void __fastcall TForm1::ClipboardChanged(TMessage& Msg)

  

{

  

 POINT MousePos;

  

 GetCursorPos(&MousePos);

  

 PopupMenu4->PopupComponent=Form1;

  

 PopupMenu4->Popup(MousePos.x,MousePos.y); //一有变化,就弹出一个菜单,复制,剪切或清除都能引发此函数

  

}

  

在Form1的.cpp内有一个ToolButton

  

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;

  

}

  

  

精彩图集

赞助商链接