線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1143
推到 Plurk!
推到 Facebook!

跨程式存取剪貼簿(windows clipboard) (不使用元件)

 
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-10 14:15:54 IP:61.66.xxx.xxx 未訂閱
Unit1.h
class TForm1 : public TForm
{
__published:        // IDE-managed Components
        TLabel *Label1;
        TLabel *Label2;
        TButton *BTMcopy;
        TButton *BTMpaste;
        void __fastcall BTMcopyClick(TObject *Sender);
        void __fastcall BTMpasteClick(TObject *Sender);
private:        // User declarations
public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
};
Unit1.cpp
 
#include     //---------------------------------------------------------------------------
void SetCopyData(TLabel *LabSender)
{
        LPTSTR  lptstrCopy;
        HGLOBAL hglbCopy;            if(LabSender == NULL)
            return;            if (!OpenClipboard(NULL))
            return;            // Allocate a global memory object for the text.
        hglbCopy = GlobalAlloc(GMEM_MOVEABLE,LabSender->Caption.Length());
        if (hglbCopy == NULL)
        {
            CloseClipboard();
            return;
        }            // Lock the handle and copy the text to the buffer.             lptstrCopy = (char*)GlobalLock(hglbCopy);
        memcpy(lptstrCopy, LabSender->Caption.c_str(), LabSender->Caption.Length());
        GlobalUnlock(hglbCopy);            // Place the handle on the clipboard.
        SetClipboardData(CF_TEXT, hglbCopy);            CloseClipboard();
}
//---------------------------------------------------------------------------
void GetCopyData(void)
{
    void* lpstr;
    HANDLE hdlRecieve;        if (!IsClipboardFormatAvailable(CF_TEXT))
            return;
    if (!OpenClipboard(NULL))
            return;        hdlRecieve = GetClipboardData(CF_TEXT);
    lpstr = GlobalLock(hdlRecieve);
    Form1->Label2->Caption = (char*)lpstr;        GlobalUnlock(hdlRecieve);
    CloseClipboard();
}
//---------------------------------------------------------------------------    void __fastcall TForm1::BTMcopyClick(TObject *Sender)
{
        SetCopyData(Label1);
}
//---------------------------------------------------------------------------    void __fastcall TForm1::BTMpasteClick(TObject *Sender)
{
        GetCopyData();
}
//---------------------------------------------------------------------------
------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Programmers Guide http://anpino.begin.8d8d.com 發表人 - anpino 於 2004/01/10 14:18:03
系統時間:2024-07-02 7:13:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!