gpt4 book ai didi

c++ - 在多个对话框中显示和使用相同的 MFC CList 控件

转载 作者:行者123 更新时间:2023-11-28 02:05:59 24 4
gpt4 key购买 nike

我正在为 Windows CE 设备编写测试应用程序。这是我第一次为手持设备编程。我在 Visual Studio 2008 上使用 MFC VC++。我发现控件中有很多限制,当我在可移植计算机上运行该程序与在台式计算机上运行类似程序时,我可以使用它们做什么。

现在,我正在部署我的测试程序的设备没有触摸屏,并且除了数字键盘 0-9 键之外几乎没有额外的键。所以,我必须使用一个简单的 GUI,它使用按键来调用特定的功能,如添加、编辑、删除等......它还迫使我为这些功能中的每一个使用单独的对话框,以避免不必要的鼠标光标使用。

这导致我遇到当前问题:我的测试应用程序的“添加”对话框将一些用户数据添加到 CListCtrl 位于“主”对话框中。 'EDIT/DELETE'对话框允许用户从它自己的CListCtrl中选择想要的数据并按下“ENTER”键,从而删除选择的数据< strong>来自“MAIN”对话框的 CListCtrl。因此,主对话框和“编辑/删除”对话框都具有具有完全相同数据的 CListCtrl。因此,不必使用 2 个单独的列表控件并使用循环在它们之间来回复制数据,有没有一种方法可以让我使用完全相同的 CListCtrl(CListCtrl 的一个且只有一个实例存在),但将其显示在 2 个单独的对话框中?这将删除所有复制代码,并将内存中的数据量减半。

我尝试将指向 MAIN 对话框的 CListCtrl 的指针传递给“编辑/删除”对话框,希望我可以在那里重绘控件,但没有成功。我可以调用 RedrawWindow、RedrawItems 命令,但它们似乎在“编辑/删除”对话框中没有效果(我认为这是因为控件本身不存在于编辑/删除对话框中)。还有其他建议吗?

最佳答案

您可以使用 CWnd::SetParent 暂时将 ListCtrl 的父级更改为 EDIT/DELETE 对话框,并使用 CWnd::SetWindowPos 将位置设置为您所在的位置想要拥有它。当对话框关闭时,将父级设置回主对话框。

关于c++ - 在多个对话框中显示和使用相同的 MFC CList 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37518298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com