首页新闻找找看学习计划

如何判断父窗口上 所有按钮的单击事件

0
悬赏园豆:20 [已解决问题] 解决于 2016-06-05 22:58

例如我在DLG窗口上 添加了 100个button按钮

当我按下其中一个按钮时 触发单击事件  我就通过UDP 给另一台机子发送 数据

如何实现 ?

涛洛伊的主页 涛洛伊 | 初学一级 | 园豆:79
提问于:2016-06-01 23:46
< >
分享
最佳答案
0

给这100个按钮,注册同一个事件,然后在内部做处理了。

收获园豆:20
幻天芒 | 高人七级 |园豆:36594 | 2016-06-02 09:13

BOOL CSimUlADlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
    // TODO:  在此添加专用代码和/或调用基类
    if (wParam)
    {
        m_socket.Send((char *) &boeing, sizeof(boeing), "127.0.0.1", 8000);
    }
    return CDialog::OnCommand(wParam, lParam);
}
昨天实现了 重写了OnCommand函数 就可以了  你说的注册同一个事件怎么做?每个按钮是是单击事件

下面是两个按钮的功能我想知道内部做处理具体怎么做呢?

 

void CSimUlADlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码

    if(boeing.batterySwitch ==0)
    {
        boeing.batterySwitch =1;
    }
    else if(boeing.batterySwitch == 1)
    {
        boeing.batterySwitch = 0;
    }
//    m_socket.Send((char *)&boeing, sizeof(boeing),"127.0.0.1",8000);
}

void CSimUlADlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码

    if(boeing.fastenSeatbeltSign ==0)
    {
        boeing.fastenSeatbeltSign =1;
    }
    else if(boeing.fastenSeatbeltSign == 1)
    {
        boeing.fastenSeatbeltSign = 0;
    }
    //m_socket.Send((char *)&boeing, sizeof(boeing),"127.0.0.1",8000);
}

涛洛伊 | 园豆:79 (初学一级) | 2016-06-02 22:02

@涛洛伊: 哈哈,我还以为是C#代码。每个按钮的Click事件都绑定到一个处理函数上~所以点击任意按钮,都会执行这个处理函数,也就达到你要的效果了。

幻天芒 | 园豆:36594 (高人七级) | 2016-06-02 22:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册