vc编程 变量改变时发送什么消息

fiy 其他 6

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在VC编程中,当变量发生改变时,可以通过发送消息来通知其他部分或对象。发送消息的过程可以分为以下几个步骤:

    1. 定义自定义消息:首先,我们需要在消息映射中定义一个自定义消息。可以使用DECLARE_MESSAGE_MAPBEGIN_MESSAGE_MAP宏来定义消息映射,并使用ON_MESSAGE宏来定义自定义消息。
    // 在消息映射中定义自定义消息
    class CMyWnd : public CWnd
    {
       DECLARE_MESSAGE_MAP()
    };
    
    BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
       ON_MESSAGE(WM_MY_CUSTOM_MSG, OnCustomMessage)
    END_MESSAGE_MAP()
    
    1. 发送消息:当变量发生改变时,通过SendMessage函数来发送自定义消息。可以在变量的Set方法中调用SendMessage函数,将自定义消息作为参数发送出去。
    // 发送自定义消息
    void CMyClass::SetValue(int value)
    {
       m_value = value;
       SendMessage(WM_MY_CUSTOM_MSG, m_value, 0);
    }
    
    1. 处理消息:在接收消息的对象中,重写OnCustomMessage函数来处理自定义消息。可以在相应的窗口类或对话框类中重写该函数,根据需要进行相应的操作。
    // 处理自定义消息
    LRESULT CMyWnd::OnCustomMessage(WPARAM wParam, LPARAM lParam)
    {
       int value = (int)wParam;
       // 对变量改变的通知进行处理
       // ...
       return 0;
    }
    

    通过以上步骤,当变量发生改变时,发送自定义消息,接收消息的对象可以接收并处理这个消息,从而实现对变量改变的通知。注意,在发送和接收消息时,需要使用相同的自定义消息常量(例如WM_MY_CUSTOM_MSG)来保持一致。

    总结:在VC编程中,当变量改变时,可以通过发送自定义消息来通知其他部分或对象。通过定义自定义消息、发送消息和处理消息,可以实现对变量改变的通知和相应的处理。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在VC编程中,当变量的值发生改变时,可以通过发送消息来通知其他部分或对象。以下是几种常见的消息类型:

    1. WM_COMMAND消息:该消息用于通知窗口或控件的命令事件。当变量的值发生改变时,可以通过发送WM_COMMAND消息来触发相关的命令事件处理函数。例如,可以发送WM_COMMAND消息来通知菜单项或按钮的点击事件。

    2. WM_NOTIFY消息:该消息用于通知控件的通知事件。当变量的值发生改变时,可以通过发送WM_NOTIFY消息来触发相关的通知事件处理函数。例如,可以发送WM_NOTIFY消息来通知列表框或树形控件的选择改变事件。

    3. 自定义消息:除了使用系统定义的消息类型外,还可以自定义消息来实现变量改变时的通知。可以使用RegisterWindowMessage函数来注册一个自定义消息,并通过SendMessage或PostMessage函数来发送该消息。在接收方,可以通过重载窗口类的消息处理函数来处理自定义消息。

    4. 发送广播消息:广播消息是一种特殊类型的消息,用于向系统中的所有窗口发送消息。可以使用SendMessage函数和特定的消息参数来发送广播消息。当变量的值发生改变时,可以发送广播消息来通知系统中的所有窗口。

    5. 使用事件通知机制:除了通过消息来通知变量的改变外,还可以使用事件通知机制来实现。可以创建一个事件对象,并在变量改变的地方触发该事件。其他部分或对象可以通过监听该事件来得知变量的改变。可以使用CreateEvent函数来创建事件对象,并使用SetEvent函数来触发事件。

    总结来说,VC编程中,当变量改变时,可以通过发送消息或使用事件通知机制来实现通知。具体选择哪种方式取决于应用的需求和设计。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在VC编程中,当变量的值发生改变时,可以通过发送消息的方式通知其他部分进行相应的处理。具体来说,可以通过以下几种方式来实现变量改变时发送消息的功能:

    1. 使用自定义消息:
      可以定义一个自定义的消息,当变量的值发生改变时,通过发送这个消息来通知其他部分。具体的步骤如下:
      1)在头文件中定义消息的ID,例如:#define WM_MY_VARIABLE_CHANGED (WM_USER + 100)
      2)在需要发送消息的地方使用SendMessage函数来发送消息,例如:SendMessage(hWnd, WM_MY_VARIABLE_CHANGED, wParam, lParam)
      3)在接收消息的地方,通过重写窗口的消息处理函数来处理消息,例如:
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
       switch (message)
       {
       case WM_MY_VARIABLE_CHANGED:
          // 处理变量改变的逻辑
          break;
       default:
          return DefWindowProc(hWnd, message, wParam, lParam);
       }
       return 0;
    }
    
    1. 使用事件机制:
      可以使用Windows提供的事件机制来实现变量改变时发送消息的功能。具体的步骤如下:
      1)在需要发送消息的地方创建一个事件对象,例如:HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
      2)在变量发生改变的地方通过SetEvent函数来设置事件,例如:SetEvent(hEvent);
      3)在接收消息的地方通过WaitForSingleObject函数来等待事件的触发,例如:DWORD dwRet = WaitForSingleObject(hEvent, INFINITE);,当事件触发时,函数会返回。
      4)在接收消息的地方处理事件触发后的逻辑。

    2. 使用消息映射机制:
      在MFC编程中,可以使用消息映射机制来实现变量改变时发送消息的功能。具体的步骤如下:
      1)在消息映射表中添加一个消息映射,例如:ON_MESSAGE(WM_MY_VARIABLE_CHANGED, OnMyVariableChanged)
      2)在需要发送消息的地方通过SendMessage函数来发送消息,例如:SendMessage(WM_MY_VARIABLE_CHANGED, wParam, lParam)
      3)在消息映射表对应的函数中处理消息,例如:

    afx_msg LRESULT OnMyVariableChanged(WPARAM wParam, LPARAM lParam)
    {
       // 处理变量改变的逻辑
       return 0;
    }
    

    通过以上的方法,可以在变量改变时发送消息,从而实现对应的处理逻辑。根据具体的需求和编程环境的不同,可以选择适合的方法来实现。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部