Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1

    SetClipboardData Trả Lại ClipBoard sau khi thực hiện GetClipboardData

    Trong ứng dụng mình có làm 1 việc là tự động đặt dữ liệu vào CLiboard,nhưng vấn đề là mình muốn trả lại cliboard sau khi làm xong việc,mình nghĩ đến việc sử dụng hàm GetCliboard trước khi thực hiện hàm SetClibBoard nhưng do hàm


    HANDLE WINAPI GetClipboardData(
    __in UINT uFormat
    );
    nó yêu cầu phải biết dữ liệu cliboard cần GetCliboardData là gì( như trong bảng này


    CF_BITMAP CF_DIB
    CF_BITMAP CF_DIBV5
    CF_DIB CF_BITMAP
    CF_DIB CF_PALETTE
    CF_DIB CF_DIBV5
    CF_DIBV5 CF_BITMAP
    CF_DIBV5 CF_DIB
    CF_DIBV5 CF_PALETTE
    CF_ENHMETAFILE CF_METAFILEPICT
    CF_METAFILEPICT CF_ENHMETAFILE
    CF_OEMTEXT CF_TEXT
    CF_OEMTEXT CF_UNICODETEXT
    CF_TEXT CF_OEMTEXT
    CF_TEXT CF_UNICODETEXT
    CF_UNICODETEXT CF_OEMTEXT
    CF_UNICODETEXT CF_TEXT
    http://msdn.microsoft.com/en-us/libr...pboard_Formats
    Vậy có cách nào để trả đúng dữ liệu ban đầu cho cliboard không ?

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    đã xong rùi [IMG]images/smilies/biggrin.png[/IMG]
    http://www.codeproject.com/kb/clipboard/cbbackup.aspx

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Sử dụng API UINT EnumClipBoardFormats(UINT format):

    Định dạng của các dữ liêu được trong Clipboard được lưu ở dạng một danh sách có thứ tự. Để liệt kê ra định dạng của các dữ liệu đang được lưu trong clipboard thì gọi hàm EnumClipBoardFormats.

    Hàm trả về 0 nếu Clipboard chưa được open hoặc

    Gọi như sau

    Mã:
    UINT format=0;UINT CF=0;UINT format=0;BOOL Stop=FALSE;while (!Stop==TRUE){   CF=EnumClipBoardFormats(format);  switch (CF): {    case CF_TEXT:   //... do what you want   break;   //....   case 0:      if (GetLastError()!=ERR_SUCCESS)      {        MessageBox(NULL,_T("You haven't call OpenClipBoard yet"));        Stop=TRUE;      }    break;   format=CF; } }
    chú ý: Khi CF=0 có 2 trường hợp
    1.Clipboard chưa mở chưa gọi OpenClipboard:
    2.Đã duyệt hết dãy thì GetLastError() trả về ERR_SUCCESS

    Chú ý là đừng có gọi CountClipBoardFormats làm thân cho vòng lặp vì hàm trên là đếm số định dạng dữ liệu khác nhau hiện đang có trên Clipboard (bản chất tập hợp) chứ
    không phải là danh sách (ordered-list) đâu nhé.
    EnumerClipBoardFormat là lấy từ ordered-list.

    Tui tra MSDN ra đó, còn cái code tự họa trên thông tin của MSDN cho.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •