Treeview의 MouseDown에서
아래와 같이 코딩을 했는데, 바탕에 클릭을 도 해당 아이템으로 선택이 되더라구요.
바탕을 클릭하면 아무반응이 없게 하려면 어떻게 하면 되는지 답변 부탁드립니다.
procedure TfmMain.TreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
TVHitTestInfo : TTVHitTestInfo;
TreeItem : hTreeItem;
begin
TVHitTestInfo.pt := Point(X, Y);
with TreeView1 do
begin
TreeItem := TreeView_HitTest(Handle, TVHitTestInfo);
if TreeItem <> nil then
TreeView_Select(Handle, TreeItem, TVGN_CARET);
end;
end;
아래와 같이 코딩해보세요...
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Item: TTreeNode;
begin
if htOnItem in TreeView1.GetHitTestInfoAt(X, Y) then
begin
Item := TreeView1.GetNodeAt(X, Y);
if Item <> nil then
아이템을 클릭했을때 작업들...
end;
end;
참고로 굳이 TreeView_XXXX함수들을 쓸 필요는 없을거 같네요... 트리뷰에 다 들어가 있으니까요...
^^ 항상 즐코하세요...