乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      監(jiān)視剪切版

       aaie_ 2011-11-10
      Windows使用剪貼板觀察器和觀察鏈。剪貼板觀察器是一個顯示剪貼板當(dāng)前內(nèi)容的窗口。通常它應(yīng)該至少能顯示三種普通格式的內(nèi)容:文字CF_TEXT、位圖CF_BITMAP、元文件CF_METAFILEPICT。剪貼板觀察鏈?zhǔn)且幌盗邢嗷オ毩⒌募糍N板觀察窗口,它們都能夠接受當(dāng)前發(fā)送到剪貼板的內(nèi)容。我們大致按照以下步驟在窗口中處理有關(guān)剪貼板的內(nèi)容。  

      首先,使用SetClipboardViewer(HWND)函數(shù)向剪貼板觀察鏈中加入一個觀察窗口。當(dāng)剪貼板的內(nèi)容發(fā)生變化時,該窗口會接收到一個WM_DRAWCLIPBOARD消息。該函數(shù)需要傳遞的參數(shù)是觀察窗口的句柄。返回值也是一個窗口句柄類型,標(biāo)識了將要加入的下一個窗口。  

      然后,響應(yīng)WM_DRAWCLIPBOARD消息處理剪貼板內(nèi)容的變化。  

      最后,在程序退出或關(guān)閉時需要調(diào)用ChangeClipboardChain函數(shù)來將自己從觀察鏈中刪除。然后調(diào)用SendMessage函數(shù)把這些消息傳遞到觀察鏈中的下一個觀察窗口。函數(shù)ChangeClipboardChain原型如下:  

      BOOL   ChangeClipboardChain(
      HWND   hWndRemove,   //將要刪除的窗口的句柄
      HWND   hWndNewNext   //觀察鏈中下一個窗口的句柄
      );  
      Delphi的clipbrd.pas單元中定義了一個類TClipboard,它封裝了Windows剪貼板,簡化了大量復(fù)雜的處理過程。我們在程序中可以直接調(diào)用全局函數(shù)Clipboard,該函數(shù)用于返回TClipboard對象實例,使用這個實例對剪貼板進(jìn)行剪切、復(fù)制和粘貼等操作。下面是TClipboard對象的幾個常用的方法和屬性的簡單介紹。  

      方法:  

      Assign:將指定的對象放入剪貼板中。  

      Open:打開剪貼板,防止其他程序改寫剪貼板。在向剪貼板加入多項數(shù)據(jù)時尤其有用。  

      Close:關(guān)閉剪貼板。應(yīng)該與打開剪貼板成對使用。  

      Clear:清空剪貼板。  

      GetAsHandle:返回剪貼板中指定格式數(shù)據(jù)的句柄。使用前必須打開剪貼板。  

      GetComponent:返回剪貼板中的一個控件。Delphi自己使用得多。  

      HasFormat:查詢剪貼板中是否有指定格式的內(nèi)容。  

      屬性:  

      AsText:用于讀寫剪貼板文字內(nèi)容。  

      FormatCount:讀剪貼板中數(shù)據(jù)格式的種數(shù)。  

      Formats:返回剪貼板中各種格式的列表。  

      此外,Delphi中的許多控件中也封裝了有關(guān)剪貼板處理的操作。下面的一個處理剪貼板的簡單例子,只是將剪貼板的文字內(nèi)容顯示為窗口標(biāo)題。  

      unit   Unit1;

      interface

      uses
      Windows,   Messages,   SysUtils,   Classes,
      Graphics,   Controls,   Forms,   Dialogs,
      Clipbrd;//加入clipbrd單元

      type
      TForm1   =   class(TForm)
      procedure   FormCreate(Sender:   TObject);
      procedure   FormClose(Sender:   TObject;
      var   Action:   TCloseAction);
      private
      {   Private   declarations   }
      public
      NextClipHwnd:HWND;//觀察鏈中下一個窗口句柄
      procedure   WMDrawClipBoard
      (var   AMessage:TMessage);
      message   WM_DRAWCLIPBOARD;
      //處理WM_DRAWCLIPBOARD消息過程
      end;

      var
      Form1:   TForm1;

      implementation

      {$R   *.DFM}

      {   TForm1   }

      procedure   TForm1.WMDrawClip
      Board(var   AMessage:   TMessage);
      begin
      //將WM_DRAWCLIPBOARD
      消息傳遞到下一個觀察鏈中的窗口
      SendMessage(NextClipHwnd,AMessage.
      Msg,AMessage.WParam,AMessage.LParam);
      //查詢剪貼板中特定格式的數(shù)據(jù)內(nèi)容
      if   (Clipboard.HasFormat(CF_TEXT)   or
      Clipboard.HasFormat(CF_OEMTEXT))   then
      begin
      //處理剪貼板中內(nèi)容
      Caption:=Clipboard.asText;
      end;
      end;

      procedure   TForm1.FormCreate(Sender:   TObject);
      begin
      //獲得觀察鏈中下一個窗口句柄
      NextClipHwnd:=SetClipBoardViewer(Handle);
      end;

      procedure   TForm1.FormClose
      (Sender:   TObject;   var   Action:   TCloseAction);
      begin
      //從觀察鏈中刪除本觀察窗口
      ChangeClipboardChain(Handle,NextClipHwnd);
      //將WM_DRAWCLIPBOARD
      消息傳遞到下一個觀察鏈中的窗口
      SendMessage(NextClipHwnd,WM_
      CHANGECBCHAIN,Handle,NextClipHwnd);
      end;

      end.
      需要注意的是,在處理剪貼板內(nèi)容變化的消息WM_DRAWCLIPBOARD的過程和關(guān)閉窗口事件中使用函數(shù)sendmessage把WM_DRAWCLIPBOARD或WM_CHANGECBCHAIN消息傳遞到觀察鏈中的下一個窗口是必要的,否則有可能其他窗口不能獲得類似消息。另外,在使用網(wǎng)絡(luò)螞蟻時筆者曾經(jīng)碰到不能設(shè)置剪貼板格式的情況,在此提醒讀者注意檢查RegisterClipboardFormat等函數(shù)的返回值。  

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多