PECMD自绘模拟Win10无边框窗口

查看 52|回复 5
作者:weikangqian   
[ol]ENVI &Win_W=620
ENVI &Win_H=535
ENVI &Dpi=144       //喂一个DPI值,自己想办法获取系统的。
CALC &WidDpiSetVal=%&Dpi% / 96
IFEX "%&SystemROOT%\Fonts\msyh.tt*",
{*
    ENVI &FontName=微软雅黑
    ENVI &YsFontSize=13
}!  
{*
    IFEX "%&SystemROOT%\Fonts\simsun.tt*",
    {*
        ENVI &FontName=宋体
        ENVI &YsFontSize=9
    }!  
    {*
        IFEX "%&SystemROOT%\Fonts\segoeui.tt*",
        {*
            ENVI &FontName=Segoe UI
            ENVI &YsFontSize=13
        }!  
        {*
            ENVI &FontName=System
            ENVI &YsFontSize=13
        }
    }
}
CALC &DefaultFontSize=%&YsFontSize% * (%&WidDpiSetVal% / 4 + 1)
ENVI &MainFontSet=ENVI @this.Font=%&DefaultFontSize%:%&FontName%
IFEX "%&SystemRoot%\Fonts\segmdl2.ttf",     //这个字体好像从Win8开始才有。
{*
    SET$-ret GuanBi=0xE106      //关闭按钮
}!  
{*
    IFEX "%&SystemRoot%\Fonts\marlett.ttf",     //这个字体系统必有。
    {*
        SET$-ret GuanBi=0x72      //关闭按钮
    }
}
ENVI &PFTitle=CeoMSX
CALL @MAIN
_SUB MAIN,W%&Win_W%H%&Win_H%,%&PFTitle%,,%&MyName%,#,,-scale:%&Dpi%
    ENVI @MAIN.bkcolor=0xFFFFFF*
    ^%&MainFontSet%
    LABE -left -vcenter * &MAIN_LABE,L0T0W%&Win_W%H30,    %&PFTitle%        //不能直接这里设置“0xFFFFFF#0xFF9220”,否则会挡住后面的控件。
    ENVI @&MAIN_LABE.bkcolor=0xFFFFFF#0xFF9220
    IFEX [ "%&SystemRoot%\Fonts\marlett.ttf" | "%&SystemRoot%\Fonts\segmdl2.ttf" ],
    {*
        IFEX "%&SystemRoot%\Fonts\segmdl2.ttf",
        {*
            ITEM -color:0xFFFFFF#0xFFFFFFFF#0xFFFFFF#0x2311E8 -font:(%&DefaultFontSize% + 3):Segoe MDL2 Assets**###1# -nscope * ,L(%&Win_W% - (32 * 1) - (ceil(1 * %&WidDpiSetVal%) + 1))T(ceil(1 * %&WidDpiSetVal%) + 1)W32H26,%&GuanBi%,KILL @MAIN,,
        }!  
        {*
            IFEX "%&SystemRoot%\Fonts\marlett.ttf",
            {*
                ITEM -color:0xFFFFFF#0xFFFFFFFF#0xFFFFFF#0x2311E8 -font:(%&DefaultFontSize% + 3):Marlett**###1# -nscope * ,L(%&Win_W% - (32 * 1) - (ceil(1 * %&WidDpiSetVal%) + 1))T(ceil(1 * %&WidDpiSetVal%) + 1)W32H26,%&GuanBi%,KILL @MAIN,,
            }
        }
    }
    CALL MakeBianKuang MAIN
_END
_SUB MakeBianKuang
    //这里通过Dpi拉伸计算得到的可能是小数,不太准。新方法,直接获取实际宽高后再处理。
    ENVI @%~1.POS=?::@&&W:&&H
    LABE+ &MAIN_Top,    //上
    ENVI @&MAIN_Top.POS=0:0:@%&&W%:1
    LABE+ &MAIN_End,    //下
    ENVI @&MAIN_End.POS=0:(%&&H% - 1):@%&&W%:1
    LABE+ &MAIN_Left,   //左
    ENVI @&MAIN_Left.POS=0:0:@1:%&&H%
    LABE+ &MAIN_Right,  //右
    ENVI @&MAIN_Right.POS=(%&&W% - 1):0:@1:%&&H%
_END
[/ol]复制代码效果:

按钮, 字体, 不太

wang1973   
谢谢分享
wang1973   
这个是不是CEO Msx 2024版的界面....
wang1973   
帮顶一下
wang1973   
谢谢分享!!~
wang1973   
谢谢楼主分享!
您需要登录后才可以回帖 登录 | 立即注册

返回顶部