aardio 文档

aardio 范例: richedit 弹出菜单

//响应通知/右键菜单
import win.ui;
/*DSG{{*/
var winform = win.form(text="richedit 弹出菜单";right=432;bottom=279;parent=...)
winform.add(
btnSetFont={cls="button";text="改变选区字体";left=240;top=236;right=343;bottom=263;db=1;dr=1;z=2};
richedit={cls="richedit";text="richedit 默认没有右键菜单,
使用 winform.richedit.popMenu() 函数创建弹出菜单.
请点击这里点击右键测试.";left=28;top=28;right=417;bottom=231;db=1;dl=1;dr=1;dt=1;edge=1;link=1;multiline=1;z=1}
)
/*}}*/

winform.btnSetFont.oncommand = function(id,event){ 
    /*
    关于 Text Object Model 请参考MSDN
    http://msdn.microsoft.com/en-us/library/windows/desktop/bb787607%28v=vs.85%29.aspx
    */
    var textDoc = winform.richedit.getTextObjectModel()
    textDoc.Selection.Font.Name = "隶书";
    textDoc.Selection.Font.Bold = textDoc.tomTrue 
    textDoc.Selection.Font.Size = 18;
    textDoc.Selection.Font.ForeColor = gdi.RGB(0xff,0xA0,0);

    /*
    //也可以用setSelCharformat函数
    winform.richedit.setSelCharformat( 
        faceName = "隶书"; 
        yHeight = 200; //字体大小的计量单位是:缇(Twips):“磅(也就是pt)”的1/2
        textColor = gdi.RGB(255,0,0);
    )
    */
}

winform.richedit.onChange = function(){ 
    winform.text = "文本发生改变了"
} 

import win.ui.menu;//如果是edit控件必须导入菜单支持库,richedit会自动导入
winform.richedit.enablePopMenu({

    { /*---分隔线---*/ };

    { "自定义菜单项";
        function(id){

        } ; 
    };

    { "使用lambda函数控制是否禁用";
        function(id){

        } ; lambda()!winform.richedit.canCopy() ? 1/*_MF_GRAYED*/ : 0
    };
})

////参数也可以是返回菜单项数组的函数
winform.richedit.enablePopMenu(
    function(){
        var sel = winform.richedit.canCopy();

        return { 
            { /*---分隔线---*/ };

            { "自定义菜单项";
                function(id){

                } ; 
            };

            { "使用lambda函数控制是否禁用";
                function(id){

                } ; lambda()!sel ? 1/*_MF_GRAYED*/ : 0
            };
        }
    }
)


winform.show() 
win.loopMessage();

Markdown 格式