2009-03-24 1 views
1

콤팩트 프레임 워크 appliaction에서 버튼 (오른쪽 상단 모서리의 X)을 닫으려면 탭 (클릭)으로 나만의 액션을하고 싶습니다. Windows Mobile 6.1을 사용하고 있습니다.컴팩트 프레임 워크 appliquation에서 후크 닫기 (X) 버튼

일반적으로 기본 동작을 원하지만 현재 양식의 usercontrol을 변경하려고합니다. 어떻게 도달 할 수 있습니까?

감사합니다.

답변

3

닫기 버튼, 스마트 최소화 버튼이며 직접 연결할 수 없습니다 .

Form의 MinimizeButton 속성을 false로 변경할 수 있으며 처리 할 수있는 (ok) 버튼으로 바뀝니다 (Petros가 가리키는 것처럼). IMessageFilter를 사용하거나 폼의 하위 클래스를 사용하여 WinProc을 연결하여 최소화 이벤트도 유지할 수 있습니다.

은 참조 :

+0

감사합니다. MinimizeButton 속성을 변경하고 Close 이벤트를 후크하려고합니다. – TcKs

1

나는 당신이 원하는 것을 이해한다면 :

private void Form1_Closing(object sender, CancelEventArgs e) 
{ 
    e.Cancel = true; 
    //Do my own thing 
} 

당신은 제공하고 폼의 "닫기"이벤트에 대한 이벤트 처리기 수 있습니다. e.Cancel = true로 말하면 양식을 닫고 싶지 않고 다른 것을하기를 원할 것입니다.

+1

MinimizeBox = false (@ctacke가 쓴 것처럼)로 설정하면이 이벤트가 시작됩니다. 감사. – TcKs

2

당신이 찾고있는 기능은 SHDoneButton입니다.

dwState를 SHDB_SHOWCANCEL로 호출하면 "스마트 최소화"단추의 동작이 WM_COMMAND 메시지 만 내보내는 것으로 변경됩니다. 그렇다면 setting a custom WndProc에 의해 WM_COMMAND 메시지를 수신하기 만하면됩니다.

+0

".net"태그에 유의하십시오. – ctacke

+1

제 생각에 순수 .NET에서는이 문제를 해결할 수 없습니다. 관련 통화가 노출되지 않습니다. 대답은 PInvoke를 사용하는 것입니다. "커스텀 WndProc 설정"링크는 C# 게시판에 있습니다. – jtdubs