2017-11-19 34 views
1

Tcl/Tk에서 일부 응용 프로그램을 개발 중이며 화면의 현재 위치에서 맨 위를 떠나는 창을 최소화하는 기능을 내 GUI에 추가하고 싶습니다. 이 그림은 내 생각을 잘 설명합니다. Tcl/Tk 최상위 모음에서 마우스 클릭을 바인드합니다.

enter image description here

(이름이 잘못하지만 GUI의 그 부분의 기술적 이름을 모르는 경우 죄송합니다) 내가 마우스 버튼을 누르고 창을 다음과 같이된다 마우스 포인터가 표시 줄에

.

나는 시험

bind . <Button-3> "wm geometry . 200x1" 

하지만 최상위의 프레임 영역에서 미세이 일을 내 스크립트에서이 행을 추가합니다. 내 문제는 마우스가 그림의 위치에 정확히있을 때 바인드됩니다. 누구든지 어떻게 알 수 있습니까?

미리 도움 주셔서 감사합니다.

+1

('그늘'행동입니다.) twapi 패키지를보고 Windows에 사용할 수있는 API가 있는지 확인할 수 있습니다. '바인딩. '는 한 번 클릭 동작을 캡처하지 않습니다. –

+1

제목 표시 줄에서 클릭 이벤트가 발생하면 창 관리자가 응용 프로그램 (루트 창)에 알리지 않습니다. 이 문제를 해결하는 방법이 있습니다. 한 가지 방법은 제목 표시 줄을 제거한 다음 사용자 정의 자기를 직접 만드는 것입니다. wm overrideredirect를 사용하십시오. 창 관리자가 창 크기 조정, 닫기, 최소화 등 모든 멋진 기능을 복제하기를 원할 것이기 때문에 다소 복잡합니다. 제공된 모든 기능을 잃어 버릴 수 있습니다. 그러나 당신은 당신이 원하는 것을 성취합니다. –

답변

0

원하는 것을 수행 할 수 없습니다. Tk는 창 관리자가 추가 한 장식에서 어떤 일이 일어나는지 거의 제어하지 않습니다. 간단히 말해, 창 테두리 또는 제목 영역에서 발생하는 이벤트를 처리 할 수 ​​없습니다.