1

我目前正在尝试将应用程序从 owl 移植到 vcl。

在我的旧项目文件中,我能够加载类似的对话框

TBatchAcDialog(TWindow* parent) : TAPDialog(parent, BATCH_DIALOG)

但是,使用 TTaskDialog 代替它不支持第二个参数。

我为用户界面设计者找到了一个解释,当右键单击菜单时,您可以从 rc 文件加载第一个声明的菜单。

但是,我真的不知道如何在此 IDE 中将这些对话框加载为对话框并将它们再次链接到我的类。

你们中有人知道这一点,或者可以将我链接到关于类似问题的文章吗?尽管实施 rc-dialogs 对我来说似乎是一个常见问题,但我似乎未能找到合适的解决方案。

4

2 回答 2

2

C++Builder 没有任何将资源对话框包装在类中的本机功能。如果需要,您必须在自己的代码中手动设置。否则,只需使用 Win32 API 函数,例如CreateDialog()处理资源对话框,或者重新设计 UI 以使用 VCLTForm窗口而不是资源对话框。

TTaskDialog不是你想的那样。它只是 Win32 APITaskDialogIndirect()函数(仅限 Vista 及更高版本)的包装器,与您尝试完成的任务无关。

于 2013-04-17T21:08:54.083 回答
2

我目前正在尝试将应用程序从 owl 移植到 vcl。

你的确切目标是什么?能够使用 C++ Builder 构建应用程序,还是使用 VCL 代替 OWL?

如果你想为对话框使用 VCL,那么你不能移植它们,你需要从头开始重写所有的 UI,因为 VCL 与标准的 Windows 对话框有很大的不同。

如果您只想使用 C++ Builder 构建应用程序,那么您可以通过升级到 OWLNext 来实现 - 它是 OWL 框架的开源升级,可与 C++ Builder 和 Visual C++ 等现代编译器一起使用。您还可以使用 OWLNext 逐步迁移到 VCL - 因为 VCL 和 OWL 可以在同一个应用程序中共存,因此您可以将旧的 OWL 应用程序迁移到 C++ Builder,在 VCL 中编写任何新 UI,并逐步重写旧 UI在 VCL 中 - 它可能比用 VCL 重写整个应用程序更容易、更安全。

于 2013-04-18T06:01:44.827 回答