21xrx.com
2024-11-22 12:26:19 Friday
登录
文章检索 我的文章 写文章
C++实现在Winform中发送字符串消息
2023-07-04 19:15:39 深夜i     --     --
C++ Winform 字符串消息 发送

在Winform程序中,我们可能需要发送字符串消息,这可以通过C++实现。下面介绍一下如何实现。

首先,我们需要在程序中引入头文件,包括“windows.h”和“string.h”。然后,定义消息发送函数,如下所示:


void SendMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

  COPYDATASTRUCT cds;

  char* pszData;

  pszData = "Hello Winform";

  cds.dwData = 0;

  cds.cbData = strlen(pszData) + 1;

  cds.lpData = pszData;

  SendMessage(hwnd, WM_COPYDATA, wParam, (LPARAM)(LPVOID)&cds);

}

在以上代码中,我们使用了COPYDATASTRUCT结构体,它包含三个成员变量:dwData、cbData和lpData。其中,dwData是指定数据的标识符,cbData是指定数据的大小,lpData是指向数据的指针。我们在这里定义了一个字符串“Hello Winform”,并通过指针传递给消息接收方。

接下来,我们需要在Winform程序中定义消息处理函数,如下所示:


protected:

  virtual void WndProc(Message% m) override

  {

    if (m.Msg == WM_COPYDATA)

    {

      COPYDATASTRUCT^ cds = reinterpret_cast<COPYDATASTRUCT^>(m.GetLParam());

      char* pData = static_cast<char*>(cds->lpData);

      String^ message = gcnew String(pData);

      MessageBox::Show(message, "Message Received");

    }

    else

    {

      Form::WndProc(m);

    }

  }

在以上代码中,我们首先判断消息的类型是否为WM_COPYDATA。如果是,则通过指针获取数据,并将其转换为System::String类型的message。最后,我们使用MessageBox显示接收到的字符串消息。

以上,就是用C++在Winform中发送字符串消息的实现方法。如果您有需要,可以根据自己的实际情况进行修改和优化。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复