treeview가 포함되어 있는 tab item 지우기(delete)

tab을 만들고 그 탭에 GUICtrlCreateTabItem으로 tab item을 만들어 놓고 그 안에 GUICtrlCreateTreeView를 만들어 넣어둔 상태.

파일을 열 때마다

로 tabitem을 생성하고 각 tab item마다 treeview를 생성.

이후 WM_NOTIFY메세지를 후킹하여 마우스 오른쪽 버튼을 누를 때 탭 item을 삭제하도록 할 예정이었음..

근데 여기서 GUICtrlTabDeleteItem()을 호출하여 tabitem을 지우니 각 tabitem별로 추가했던 treeview가 그대로 화면에 남아있는게 아닌가..!!

그래서 tabitem별로 배열을 만들어 treeview의 controlID를 넣어 매칭하고 blahblah… 별 시도를 다 해봤는데 안된다.ㅠㅠ

하지만 몇가지 알아낸점.

GUICtrlTabDeleteItem으로 Tab을 지우고 별개로 해당 tabitem과 매치되었던 treeview를 별개로 지워보니 tab item들과 treeview들의 mapping이GUICtrlTabDeleteItem()이 불리는 순간 재배열되는것을 발견함. 즉GUICtrlTabDeleteItem이 아닌 Tab Control Item전체를 다른식으로 불러 지워야 할것 같음.

결국 한줄로 해결…;; 배열 mapping다 필요없이 tab item의 control ID를 찾아 GUICtrlDelete로 지워주면 해당 tab item에 추가된 control들은 알아서 지워진다..

transpine

생각이 세상을 바꿀 수 있다고 믿습니다. 생각하는 힘을 기릅시다.

%d bloggers like this: