Пятница - 19.04.2024 - 05:08:03
2996
0
0
В одной из программ использовал компонент TabControl.
Этом компонент используется для отображения вкладок. В отличии от
PageControl он не имеет страниц. Захотелось сделать так, чтобы вкладки
можно было перемещать с места на место с помощью мыши (Drag&Drop) как,
например, в веброузере «Опера». Поискав в интернете, так ничего
и не нашел. Нашел было код на Delphi, но он мне не понравился. Решил
поупражняться сам и, знаете, получилось. Оказалось все предельно просто.
Среда программирования C++Builder 6.
6. Перемещение вкладок TabControl (Drag&Drop).
//--------------объвляем индекс вкладки в файле *.h---------------------------- int indtab; //---------- файл *.срр--------------- int __fastcall TFMain::ItemAtPos(HWND TabControlHandle, int X, int Y) { TTCHitTestInfo HitTestInfo; int HitIndex; HitTestInfo.pt.x= X; HitTestInfo.pt.y= Y; HitTestInfo.flags= 0; HitIndex = SendMessage(TabControlHandle, TCM_HITTEST, 0, long(&HitTestInfo)); return HitIndex; } //--------------------------------------------------------------------------- void __fastcall TFMain::TabControl1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { indtab=ItemAtPos(TabControl1->Handle,X,Y); } //--------------------------------------------------------------------------- void __fastcall TFMain::TabControl1DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) { Accept=Sender->ClassNameIs("TTabControl"); } //--------------------------------------------------------------------------- void __fastcall TFMain::TabControl1DragDrop(TObject *Sender, TObject *Source, int X, int Y) { TTabControl *pTabcontr=(TTabControl *)Sender; POINT p; p.x=X; p.y=Y; int tabpos=pTabcontr->IndexOfTabAt(p.x,p.y); pTabcontr->Tabs->Move(indtab,tabpos); } //--------------------------------------------------------------------------- void __fastcall TFMain::TabControl1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TabControl1->BeginDrag(0); } //---------------------------------------------------------------------------
Друзья сайта
Новости сайта
(06.03.2010)
Полностью обновлены дизайн и структура сайта
Полностью обновлены дизайн и структура сайта