这段代码是在 MFC 框架下,通过获取主窗口句柄,向主窗口发送自定义的消息 WM_QryStrategy_All,同时传递两个参数:一个是 bool 类型的值 msg->bIsLast,另一个是指向 msg->StrategyField 的指针,用于传递策略相关的数据。主窗口接收到该消息后,可以根据参数进行相应的处理。
时间: 2024-02-03 22:12:14 浏览: 64
API--Get--hwnd.zip_LabVIEW API_LabVIEW 窗口_labview获取句柄_labview调用窗
5星 · 资源好评率100%
下面是示例代码:
```c++
// 定义消息
#define WM_QryStrategy_All (WM_USER + 100)
// 发送消息
CWnd* pMainWnd = AfxGetMainWnd();
if (pMainWnd) {
COPYDATASTRUCT cds;
cds.dwData = WM_QryStrategy_All;
cds.cbData = sizeof(QryStrategyMsg);
cds.lpData = msg;
pMainWnd->SendMessage(WM_COPYDATA, (WPARAM)0, (LPARAM)&cds);
}
// 接收消息
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_COPYDATA()
END_MESSAGE_MAP()
BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
if (pCopyDataStruct->dwData == WM_QryStrategy_All) {
QryStrategyMsg* msg = (QryStrategyMsg*)pCopyDataStruct->lpData;
// 处理消息
return TRUE;
}
return CFrameWnd::OnCopyData(pWnd, pCopyDataStruct);
}
```
其中,QryStrategyMsg 是自定义的结构体,用于传递策略相关的数据。注意,在发送消息时,需要将数据放入 COPYDATASTRUCT 结构体中,并将该结构体作为参数传递给 SendMessage 函数。在接收消息时,需要判断消息类型,然后将传递的数据转换为正确的类型进行处理。
阅读全文