2012-12-08 7 views
2

Windows Mobile 6.1이 설치된 스마트 장치에서 작업하고 있습니다. 내 응용 프로그램 (Form)을 완전히 숨길 필요가 있지만이를 수행 할 수 없습니다. Form.Hide 메서드를 호출하려고 시도했지만 효과가 없으므로 양식이 열려 있고 표시되며 최대화됩니다. 나도 따라려고 노력했다 this post :.NET Compact Framework를 사용하여 폼을 숨기는 방법

[DllImport("coredll.dll")] 
static extern int ShowWindow(IntPtr hWnd, int nCmdShow); 

public Form1() 
{ 
    InitializeComponent(); 
    Hide(); 
} 

public new void Hide() 
{ 
    const int SW_MINIMIZED = 6; 

    FormBorderStyle = FormBorderStyle.FixedDialog; 
    WindowState = FormWindowState.Normal; 
    ControlBox = true; 
    MinimizeBox = true; 
    MaximizeBox = true; 

    // Since there is no WindowState.Minimize, we have to P/Invoke ShowWindow 
    ShowWindow(this.Handle, SW_MINIMIZED); 
} 

그러나 어떤 효과 (다시). 이 작업을 수행하는 올바른 방법은 무엇입니까?

+0

아직 보이지 않는 창을 숨길 수 없습니다. 대신 폼의 WindowState 속성을 FormWindowState.Minimized로 설정하십시오. 실제로 Show()가 보이기 전까지는 Show()를 호출하지 마십시오. –

+1

앱을 "숨기"원한다면 왜 처음에는 양식이 있습니까? – ctacke

+0

@ctacke 보낸 사람 대신에 무엇을 사용해야합니까? – Nick

답변

1

응용 프로그램이 작동하려면 Application.Run (Compact Framework의 양식이 필요함)에 대한 호출이 필요하지 않습니다. 앱에 UI가 필요하지 않은 경우 양식을 만들지 마세요. 상태 루프, 다중 스레드를 만들 수 있으며, 양식이 없어도 Main 진입 점에서 다른 모든 항목을 만들 수 있습니다. Windows 메시지를 처리해야하는 경우 직접 GetMessageDispatchMessage을 호출하여 사용자 고유의 메시지 펌프를 만들 수 있습니다.

관련 문제