gpt4 book ai didi

c++ - 如何在 THeaderSection 中嵌入 VCL TEdit 控件?

转载 作者:行者123 更新时间:2023-11-28 04:28:44 25 4
gpt4 key购买 nike

我想在 THeader 控件上嵌入一个 TEdit 控件。

更新:

根据下面 Remy 的回答,我想出了以下运行良好的代码。

int secsWidth(0);
for(int i = 0; i < HeaderControl1->Sections->Count; i++)
{
secsWidth += HeaderControl1->Sections->Items[i]->Width;
}

TPoint p1(HeaderControl1->Left, HeaderControl1->Top);
TPoint p2 = HeaderControl1->ClientToScreen(p1); //<--- ???
mEdit->Left = p1.X + secsWidth;
mEdit->Top = p1.Y;
mEdit->Parent = HeaderControl1;

以上代码是在框架构造函数中执行的。框架是动态创建的。

无论出于何种原因,如果上面标记为“??”的行被注释掉,则编辑控件将不可见。观察这条线并没有真正做任何事情..!

我猜这个调用为 HeaderControl 组件创建了一些必要的内部结构?

最佳答案

是的,但不是直接的。

THeaderSection它本身不是一个 UI 控件,它只是内存中的一个集合项,因此它不能承载任何子控件。唯一的 UI 控件是 THeaderControl本身。

作为那个THeaderControlTWinControl后代,仅在运行时(而非设计时)您可以设置 THeaderControl作为Parent对于 TEdit , 然后你可以定位 TEdit根据需要相对于所需的标题部分,使用 THeaderSection.Left , THeaderSection.Width , 和 THeaderControl.Height属性来计算您想要 TEdit 的标题部分的边界矩形出现。

关于c++ - 如何在 THeaderSection 中嵌入 VCL TEdit 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53546686/

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