aardio 文档

aardio 范例: 富文本框自定义系统拖放操作

普通窗口拖放 | web.view 拖放 | web.form 拖放 | web.layout 拖放 | web.sciter 拖放 | 文件拖放

/*
普通窗口拖放: https://www.aardio.com/zh-cn/doc/example/Windows/Effects/DnD.html
web.view 拖放: https://www.aardio.com/zh-cn/doc/example/WebUI/web.view/dnd.html
web.form 拖放: https://www.aardio.com/zh-cn/doc/example/WebUI/web.form/dnd.html
web.layout 拖放: https://www.aardio.com/zh-cn/doc/example/WebUI/HTMLayout/exchange.html
web.sciter 拖放: https://www.aardio.com/zh-cn/doc/example/WebUI/Sciter.JS/exchange.html
文件拖放: https://www.aardio.com/zh-cn/doc/example/Windows/Effects/onDropFiles.html
*/
import win.ui;
/*DSG{{*/
var winform = win.form(text="富文本框自定义系统拖放操作";right=555;bottom=356)
winform.add(
richedit={cls="richedit";text="请拖动文本到这里";left=29;top=111;right=518;bottom=318;edge=1;multiline=1;z=1};
static={cls="static";left=37;top=40;right=521;bottom=73;transparent=1;z=2}
)
/*}}*/

//必须先导入此接口,细节请参考 IRichEditOleCallback 接口文档。
import com.interface.IRichEditOleCallback;

winform.richedit.oleCallback(


    GetDragDropEffect = function(drag,grfKeyState,effect){

        /*所有 COM 实现的原生接口,第一个返回值为 0 表示执行成功。
        返回值 2 指定拖放效果(effect),不指定则鼠标指针显示禁止拖放图标。*/
        return 0,1/*_DROPEFFECT_COPY*/
    }

    QueryAcceptData = function(ptrDataObj,format,reco,really,hMetaPict){

        /*really 表示放开鼠标,接收拖放数据*/
        if(really){

            /*用法请参考 com.interface.IDataObject 库参考文档*/
            var dataObj = com.interface.IDataObject(ptrDataObj);
            var txt = dataObj.getText();

            if(txt){
                winform.static.text = "成功拦截了拖放文本:" + txt;
            }

            /*返回 0 继续默认处理,文本放入控件,返回 _S_FALSE 阻止默认处理。*/
            return 1/*_S_FALSE*/
        }

        return 0; 
    }
)

winform.show();
win.loopMessage();

Markdown 格式