文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>IsVisible引发的血案

IsVisible引发的血案

时间:2010-08-09  来源:sinodragon21

作者:金鸽

欢迎访问 sinodragon21.cublog.cn


┌─────────────────────────┐

│┌─┐     ┌───────┐                       ┌─┐|

││+│     |  显示 / 隐藏 │                       │-||----Container

│└─┘     └───────┘                       └─┘|

└─────────────────────────┘


当 “显示/隐藏Button”被SetVisible(False)时,“+”和“-”号都接收不到 点击自己的事件event,调查原因,是因为点击“+”“-”号的事件都被“显示/隐藏Button”截获并丢弃了。

 

由于Container中包含3个元素,分别是:

Ø  “+”号

Ø  “-”号

Ø  “显示/隐藏Button”

Container的事件响应函数体中,实现方式只能是顺序依次调用各个子控件的事件响应函数,


注意点:调用某个控件的事件响应函数之前,要且必须要 经过2次判断:

1.         NULL != pCompoment

2.         pComponent->IsVisible()


错误的控件使用方法:

Bool Container::EventProcessor()
{
    if(NULL != pShowHideButton)
    {
        pShowHideButton->EventProcessor();
        return TRUE;
    }

    if(NULL != pPlusButton)
    {
        pPlusButton->EventProcessor();
        return TRUE;
    }

    if(NULL != pMinusButton)
    {
        pMinusButton->EventProcessor();
        return TRUE;
    }

    ... ...
}


正确的控件使用方法:

Bool Container::EventProcessor()
{
    if((NULL != pShowHideButton) && (pShowHideButton->IsVisible()))
    {
        pShowHideButton->EventProcessor();
        return TRUE;
    }

    if((NULL != pPlusButton) && (pPlusButton->IsVisible()))
    {
        pPlusButton->EventProcessor();
        return TRUE;
    }

    if((NULL != pMinusButton) && (pPlusButton->IsVisible()))
    {
        pMinusButton->EventProcessor();
        return TRUE;
    }

    ... ...
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载