将在c ++构建器中创建的任何组件都将分配TComponentName。
例如,当我创建一个表单并将其分配给MyWidget时,它继承了TForm
得到class TMyWidget : TForm{}
表格。使用类似检查员的间谍++,您可以看到应用程序的注册类名。
关于这一点,我的问题如下。
我这样做的方式我创建了VCL Forms App并保存了它。然后用我自己想要的类名替换TForm1,比如说,在我的情况{。{1}}中,在__classid()arg的.h,.dfm项目源文件中,但是有编译和链接问题!
告诉我如何实现这一目标的方向,而不仅仅是通过更改VCL来源!
答案 0 :(得分:1)
您可以覆盖虚拟CreateParams()
方法,以更改分配给HWND
窗口分配的TForm
的类名,例如:
void __fastcall TMyWidget::CreateParams(TCreateParams &Params)
{
TForm::CreateParams(Params)
StrLCopy(Params.WinClassName, _D("WidgetCl0x01"), (sizeof(Params.WinClassName) / sizeof(Char)) - 1);
}
使用Object Inspector中的Name
属性在代码中更改TForm
类本身的类名,不要尝试按名称进行调整。只要知道它将始终以T
作为前缀,除非您禁用TForm
的DFM并在代码中手动创建其所有内容,否则无法避免这种情况,因此类名无关紧要。