⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tdnd.tex

📁 很牛的GUI源码wxWidgets-2.8.0.zip 可在多种平台下运行.
💻 TEX
字号:
\section{Drag and drop overview}\label{wxdndoverview}Classes: \helpref{wxDataObject}{wxdataobject}, \helpref{wxTextDataObject}{wxtextdataobject}, \helpref{wxDropSource}{wxdropsource}, \helpref{wxDropTarget}{wxdroptarget}, \helpref{wxTextDropTarget}{wxtextdroptarget}, \helpref{wxFileDropTarget}{wxfiledroptarget}Note that wxUSE\_DRAG\_AND\_DROP must be defined in setup.h in orderto use drag and drop in wxWidgets.See also: \helpref{wxDataObject overview}{wxdataobjectoverview} and \helpref{DnD sample}{samplednd}It may be noted that data transfer to and from the clipboard is quitesimilar to data transfer with drag and drop and the code to implementthese two types is almost the same. In particular, both data transfermechanisms store data in some kind of \helpref{wxDataObject}{wxdataobject}and identify its format(s) using the \helpref{wxDataFormat}{wxdataformat}class.To be a {\it drag source}, i.e. to provide the data which may be dragged bythe user elsewhere, you should implement the following steps:\begin{itemize}\itemsep=0pt\item {\bf Preparation:} First of all, a data object must be created andinitialized with the data you wish to drag. For example:\begin{verbatim}	wxTextDataObject my_data("This text will be dragged.");\end{verbatim}\item{\bf Drag start:} To start the dragging process (typically in response to amouse click) you must call \helpref{wxDropSource::DoDragDrop}{wxdropsourcedodragdrop}like this:\begin{verbatim}	wxDropSource dragSource( this );	dragSource.SetData( my_data );	wxDragResult result = dragSource.DoDragDrop( TRUE );\end{verbatim}\item {\bf Dragging:} The call to DoDragDrop() blocks the program until the user releases themouse button (unless you override the \helpref{GiveFeedback}{wxdropsourcegivefeedback} functionto do something special). When the mouse moves in a window of a program which understands thesame drag-and-drop protocol (any program under Windows or any program supporting theXDnD protocol under X Windows), the corresponding \helpref{wxDropTarget}{wxdroptarget} methodsare called - see below.\item {\bf Processing the result:} DoDragDrop() returns an {\it effect code} whichis one of the values of {\tt wxDragResult} enum (explained \helpref{here}{wxdroptarget}):\begin{verbatim}	switch (result)	{	    case wxDragCopy: /* copy the data */ break;	    case wxDragMove: /* move the data */ break;	    default:         /* do nothing */ break;	}\end{verbatim}%\end{itemize}To be a {\it drop target}, i.e. to receive the data dropped by the user you shouldfollow the instructions below:\begin{itemize}\itemsep=0pt\item {\bf Initialization:} For a window to be a drop target, it needs to havean associated \helpref{wxDropTarget}{wxdroptarget} object. Normally, you willcall \helpref{wxWindow::SetDropTarget}{wxwindowsetdroptarget} during windowcreation associating your drop target with it. You must derive a class fromwxDropTarget and override its pure virtual methods. Alternatively, you mayderive from \helpref{wxTextDropTarget}{wxtextdroptarget} or\helpref{wxFileDropTarget}{wxfiledroptarget} and override their OnDropText()or OnDropFiles() method.\item {\bf Drop:} When the user releases the mouse over a window, wxWidgetsasks the associated wxDropTarget object if it accepts the data. For this,a \helpref{wxDataObject}{wxdataobject} must be associated with the drop targetand this data object will be responsible for the format negotiation betweenthe drag source and the drop target. If all goes well, then \helpref{OnData}{wxdroptargetondata} will get called and the wxDataObject belonging to the drop target can get filled with data.\item {\bf The end:} After processing the data, DoDragDrop() returns eitherwxDragCopy or wxDragMove depending on the state of the keys <Ctrl>, <Shift>and <Alt> at the moment of the drop. There is currently no way for the droptarget to change this return code.\end{itemize}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -