|
빌더의 예제를 참고해서 하나의 트리 안에서 항목 이동하는걸
만들어 봤는데여..
(한개의 폼안에 트리가 두개있고 각각의 트리는 자신내부에서만 이동가능합니다.)
첨에 만든 트리는 이동이 잘되는데 두번째 트리에서는 드래그 할려구 하면
포커스가 이동도 안되고 그러는데..이유를 모르겠네여..
이벤트는 드래그드랍이랑 드래그오버를 이용했거든여
이문제 해결해 보신분 저좀 도와 주세요..ㅠ_ㅠ
아래는 제가 사용한 빌더 예제입니다...
void __fastcall TMainForm::TreeView1DragDrop(TObject *Sender, TObject
*Source,
int X, int Y)
{
if( TreeView1->Selected == NULL ) return;
TNodeAttachMode AttachMode;
THitTests HT = TreeView1->GetHitTestInfoAt(X, Y);
TTreeNode *Node = TreeView1->GetNodeAt(X, Y);
if( HT.Contains(htOnItem) || HT.Contains(htOnIcon) ||
HT.Contains(htNowhere) || HT.Contains(htOnIndent) ) {
if( HT.Contains(htOnItem) || HT.Contains(htOnIcon) )
AttachMode = naAddChild;
else if( HT.Contains(htNowhere) )
AttachMode = naAdd;
else if( HT.Contains(htOnIndent) )
AttachMode = naInsert;
TreeView1->Selected->MoveTo(Node, AttachMode);
}
}
void __fastcall TMainForm::TreeView1DragOver(TObject *Sender, TObject
*Source, int X, int Y, TDragState State, bool &Accept)
{
Accept = true;
}
|