从主框架到Dockpane对话框的消息通知
Message Notification from main frame to the Dockpane dialog
我正在使用SDI MFC应用程序。我在主机上创建了一个dockpane对话框。我有我的视图类派生自CListView。每当用户单击大型机中的Listview时,我都希望在对话框中显示所选的行数据。谁能告诉我如何实现这个,以及如何从主机向对话框发送消息?
您可以调用方法来更新控件栏窗口中的数据,直接从视图中的选择更改处理程序更新所选项的详细信息,如下所示:
void CMyListView::OnItemChanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// Did the item state change?
if (pNMListView->uChanged & LVIF_STATE)
{
// Did the item selection change?
const bool oldSelState = (pNMListView->uOldState & LVIS_SELECTED) != 0x0;
const bool newSelState = (pNMListView->uNewState & LVIS_SELECTED) != 0x0;
const bool selStateChanged = oldSelState != newSelState;
if(selStateChanged)
{
// selection has changed
CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
CItemDetailsWnd* pDetailsWnd = pMainWnd->GetDetailsDialogBar();
CItemData* pItemData = (CItemData*)GetListCtrl().GetItemData(pNMListView->iItem);
pDetailsWnd->PopulateDetails(pItemData);
}
}
*pResult = 0;
}
在本例中,CItemData
是单个CListView
项/行的数据持有人。CItemDetailsWnd
是您的对话框控制栏,用于显示当前选定项目的详细信息。
相关文章:
- boost::进程间消息队列引发错误
- 在线编译器中的分段C++没有打印消息
- C++错误消息*成员参考.**初学者*
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 如何通过参数抛出错误消息
- 从服务器传输到客户端的消息不会出现
- ROS2 动态消息模板
- C++秘密消息学校作业
- glad 导致 glfwSwapBuffers 返回错误消息
- 函数如何通知用户它基于函数原型抛出异常?
- C++入门 5 版:类消息和文件夹
- C++ Poco - 如何向特定线程发送通知/消息?
- Win32 中是否有一条消息或通知来检测用户何时更改区域设置?
- WinAPI设备通知-未进入消息循环
- 如何在窗口提示对话框(即错误消息)时获取通知
- ZeroMQ是否有数据到达时的通知/回调事件/消息
- 仅显示消息窗口中的电源状态更改通知
- 从主框架到Dockpane对话框的消息通知
- 屏幕分辨率更改通知消息