2011-08-24 5 views
0

Windows Mobile 프로그래밍 (대화 상자 기반 응용 프로그램)의 한 가지 문제로 고민하고 있습니다.Windows 모바일 플랫폼에 대화 기반 응용 프로그램을 숨긴 후에는 사용자가 더 이상 활성화 할 수 없습니다.

대화 형 MFC 응용 프로그램이 있습니다. 앱은 다음과 같이 생성됩니다.

BOOL MyApp::InitInstance() 
{ 
    MainDlg dlg; 
    dlg.DoModal(); 

    m_pMainWnd = &dlg; 

    return FALSE; 
} 

이것은 잘 작동합니다. 하지만 큰 문제가 있습니다. 사용자가 응용 프로그램을 최소화하면 (예를 들어 "홈 버튼"을 치는 것) 응용 프로그램 창을 다시 검색 할 수 없으며 이는 외부 장치에 대한 일부 연결이며 응용 프로그램 창에 다시 연결해야하기 때문에 생각할 수도 없습니다.

해결책이 있었지만 구현할 수 없었습니다. 기본 창인 CFrameWnd을 만들고이 창이 "대화 상자를로드합니다". 이는 응용 프로그램에 윈도우가 생기고 사용자가 작업 관리자를 사용하여 맨 위로 가져올 수 있음을 의미합니다 (대화 기반 응용 프로그램이 작업 관리자의 응용 프로그램에 나열되어 있지 않기 때문에 불가능했습니다).

저는 MFC보다 나은 기술을 가진 경험이 풍부한 개발자의 도움을 정말 고맙게 생각합니다. 자세한 내용은

: 나는 SP 3

+0

DoMoal을 호출 한 다음 ShowWindow를 호출하는 이유는 무엇입니까? – ctacke

+0

나는 많은 실험을했기 때문에 실수로 거기에 뒀다. 메모 주셔서 감사합니다. – SummerBreeze

답변

0

음, 마침내 알아 냈습니다. Title bar을 해제 했으므로 작업 관리자는 내 응용 프로그램을 표시하지 않았습니다. 왜냐하면 모든 창을 가지고 있지 않았기 때문입니다.

하지만 앱을 시작한 후에는 작업 표시 줄과 제목 표시 줄에 제목이 있습니다.

  • [OK] 제목 표시 줄
  • 국경 -이 한 I 코드에서 얇은

: 제목 표시 줄을 & 테두리를 제거하기 위해, 나는 이러한 옵션 왼쪽 이제

BOOL MyDlg::OnInitDialog() 
{ 
    ... 

    ModifyStyle(WS_BORDER, 0, SWP_FRAMECHANGED); 
    MoveWindow(...); 
} 

을 내 응용 프로그램 창 - 그것은 작업 관리자에서 볼 수 있으며 가능한 한 많은 공간을 사용하고 있습니다.

0

그냥 추측으로 EVC++ 4.0을 사용하고 있습니다 : 대화 상자의 재 활성화는 어떻게 든DoModal의 복귀 후 까지 설정되어 있지 않은 m_pMainWnd 구성원에 따라 달라집니다 , , 즉입니다. 대화 상자가 인 경우이 닫힙니다. 으로 숨겨지면 닫히지 않으므로 m_pMainWnd은 초기화되지 않은 상태로 남습니다.

전에 DoModal으로 전화를 설정하십시오.

+0

죄송합니다. 그러나 문제는 훨씬 더 복잡합니다. 예, ** m_pMainWnd **에 따라 다르지만, 현재의 주 윈도우는 창으로 등록되지 않으므로 작업 관리자 응용 프로그램 목록에 나타나지 않습니다. 어쨌든 도움을 주셔서 감사합니다. – SummerBreeze

관련 문제