发新话题
打印

[例子]SpeedBar - 进度条

[例子]SpeedBar - 进度条

复制内容到剪贴板
代码:
/*
SpeedBar  - 进度条
eCGUI-微型嵌入式图形界面系统(GUI-for-Linux,DOS16/32bit,uC/OS,eCOS,...)
http://www.ecgui.com
ecgui.com@gmail.com
*/
#include "gui.h" /* GUI 的头文件 */

void MyWin(HAND hd,MESSAGE msg) /* 窗口的消息处理函数 */
{
HAND button;/* 句柄 */
HAND speedbar;/* 句柄 */
if(msg.type == GM_SYSTEM)/* 判断消息类型,消息类型全部为大写  */
        switch(msg.message)/* 判断消息 */
        {
        case GM_Create:/* 对象被创建后产生该消息,一般情况下,收到该消息时,
                对象还没有显示。可以在这里进行一些初始化工作。
                                如果是窗口的GM_Create消息,可以创建新的对象,如 BUTTON 等 */
                {
                /* 创建 进度条 对象 */
        speedbar=CreateObject(hd,SPEEDBAR,1,1,"",60,100,280,120,0,0);
                efSpeedBar->SetN(speedbar,100);/* 设置进度条项目数 */

        /* 创建按钮对象 */
                button=CreateObject(hd,BUTTON,2,1,"0",60,130,100,150,0,0);
                SetObjVar(button,speedbar);/* 将 进度条对象 的句柄设置为 按钮 的自定义数据*/
        /* 创建按钮对象 */
        button=CreateObject(hd,BUTTON,3,1,"25",105,130,145,150,0,0);
                SetObjVar(button,speedbar);/* 将 进度条对象 的句柄设置为 按钮 的自定义数据*/
        /* 创建按钮对象 */
                button=CreateObject(hd,BUTTON,4,1,"50",150,130,190,150,0,0);
                SetObjVar(button,speedbar);/* 将 进度条对象 的句柄设置为 按钮 的自定义数据*/
        /* 创建按钮对象 */
                button=CreateObject(hd,BUTTON,5,1,"75",195,130,235,150,0,0);
                SetObjVar(button,speedbar);/* 将 进度条对象 的句柄设置为 按钮 的自定义数据*/
        /* 创建按钮对象 */
                button=CreateObject(hd,BUTTON,6,1,"100",240,130,280,150,0,0);
                SetObjVar(button,speedbar);/* 将 进度条对象 的句柄设置为 按钮 的自定义数据*/
                }
                return;
        default:return;
        }
if(msg.type == GM_COMMAND)/* 按钮被触发 */
        switch(msg.message)/* 按钮 ID*/
        {
        default:
                button=(HAND)msg.pData;/* msg.pData 中为按钮的句柄 */
                speedbar=GetObjVar(button);/* 获得 进度条 对象的句柄 */
                efSpeedBar->SetValue(speedbar,((int)msg.message-2)*25);/* 设置进度条的但前值 */
                return;
        }
}
int gmain(void *data)
{
        /* 创建窗口 */
        CreateObject(0,MAINWINDOW,1,1,"SpeedBar",10,10,630,300,MyWin,data);
        return 0;
}

TOP

发新话题
最近访问的版块