在PageControl的OnMouseUp事件中:
void __fastcall TForm1::PageControl1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button == mbRight)
{
int nIndex = PageControl1->IndexOfTabAt(X, Y);
if (nIndex >= 0)
{
PageControl1->ActivePageIndex = nIndex;
TPoint Pos = PageControl1->ClientToScreen(TPoint(X,Y));
PopupMenu1->Popup(Pos.x, Pos.y);
}
}
}
沒有考慮Tab隱藏的情況。
如果要考慮有 Tab 隱藏的情況,需要把 nIndex 轉換為實際的 Index
博客展示了在PageControl的OnMouseUp事件中的代码,当鼠标右键点击时,获取点击位置的Tab索引并激活对应页面,弹出菜单。同时指出原代码未考虑Tab隐藏情况,若考虑需将nIndex转换为实际Index。

1万+

被折叠的 条评论
为什么被折叠?



