Kéo thả trong Dialog

Drag and drop in C#

Dưới đây là một phương pháp đơn giản để có được một tính năng kéo thả trong các hộp thoại Dialog của bạn.

Để có thể xử lý được vấn đề kéo thả trong Dialog, chúng ta cần có một Message Handler được gọi là WM_DROPFILES
[PHP]
//
BEGIN_MESSAGE_MAP(CComGuidFinderDlg, CDialog)
//{{AFX_MSG_MAP(CComGuidFinderDlg)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_MESSAGE(WM_DROPFILES,OnDropFiles)// Message Handler for Drang and Drop
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//
[/PHP]
Bây giờ là sử lý những message này thông qua một hàm tự định nghĩa như sau
[PHP]
LRESULT OnDropFiles(WPARAM wParam,LPARAM lParam);
[/PHP]
Cuối cùng, chúng ta dùng một chức năng để nắm bắt các sự kiện drop file vào. wParam là một sử lý cấu trúc HDROP
[PHP]
DragQueryFile(hDrop, // Struture Identifier
-1, // -1 to Drop more than one file or ( integer 0 to max )
// to drop selected No of files
szDroppedFile,// Droped File Name
MAX_PATH); // Max char
[/PHP]
Cuối cùng là tạo ra một hàm sử lý việc Drag và Drop
[PHP]
BOOL CComGuidFinderDlg::OnInitDialog()
{
……
…..
DragAcceptFiles(TRUE) // To Accept Dropped file Set this TRUE
}
[/PHP]
Mọi thông tin chi tiết xin xem thêm tập tin download bên dưới

Download code

Bài viết được chia sẻ bởi
Sharecodeweb.com

Nguyễn Trung Hiếu

Một blogger ... cùi bắp! Đơn giản: tôi muốn ghi lại những gì xảy ra xung quanh, cả công việc lẫn cuộc sống và chia sẻ với các bạn đọc. Nếu bạn cảm thấy bài viết có nhiều điểm không chính xác, hãy comment và chia sẻ để tôi còn được học hỏi từ những góp ý của bạn. Email: hieunt.dcn@gmail.com