2012-10-25 3 views
1

MFC 대화 상자 기반 응용 프로그램이 있습니다. 사용자는 대화 상자의 언어를 변경할 수 있으며 기존 대화 상자를 닫고 변경된 언어로 다른 대화 상자를 열어서 만들었습니다. 문제는 작업 표시 줄의 효과는 하나의 아이콘이 제거되고 다른 아이콘이 그 자리에 생성된다는 것입니다. 내 응용 프로그램의 아이콘이 작업 표시 줄의 마지막 아이콘이 아닌 경우 작업 표시 줄 아이콘의 끝으로 이동 했으므로 인식됩니다.작업 표시 줄 아이콘 유지, MFC 대화 상자 바꾸기

아이콘의 위치를 ​​작업 표시 줄에 유지하려는 대신 아이콘 깜박임이 발생하지 않도록해야합니다. 어떻게해야합니까?

윈도우에 7

편집을 윈도우 XP에서 OS'es를 지원해야합니다 응용 프로그램 : 다른 질문 내가 어떻게 그럼에도 불구하고 작업 표시 줄에 표시됩니다 보이지 않는 창을 만드는 것입니다 답변을 받아 들일하는 방법과 해당 창에서 관련 창 메시지를 내 메인 창으로 전달 하시겠습니까?

+0

은 당신이 이전을 닫기 전에 새로운 대화 상자를 열어 해봤 체크 아웃? –

+0

그것에 대해 생각했지만 구현 방법을 모르겠습니다. 현재 DoModal을 반복적으로 호출합니다. 동시에 두 개의 모달 대화 상자를 연 다음 첫 번째 대화 상자를 닫으려면 어떻게해야합니까? 또한 잠시 동안 작업 표시 줄에 두 개의 아이콘이 나타납니다. 더 효율적인 솔루션을 기대합니다. – Dialecticus

답변

1

대화 상자를 다른 외부 부모 창의 하위 항목으로 만듭니다. 부모는 대화 상자 또는 다른 종류의 창일 수 있습니다. 타이틀 바가 제공 될 것입니다. 사용자가 크기를 조정하려고하면 크기 조정 명령을 대화 상자로 전달해야하지만 그렇지 않으면 상위 창에서 많은 작업을 수행하지 않아도됩니다.

+0

예제 또는 링크의 예를 들어 주시면 감사하겠습니다. 예를 들어,'m_pMainWnd'와'm_pActiveWnd'로 무엇을해야할지 모르며, 누가 줄을 기다리고 있는지를 아는 사람입니다. – Dialecticus

+0

숨겨진 창에서이 방법을 시도하고 있지만 보이지 않는 창에 작업 표시 줄 단추를 표시하려면 어떻게해야합니까? WS_EX_APPWINDOW 스타일 작업 창을 볼 수 있어야합니다. – Dialecticus

+0

나는 바깥 창을 보이지 않게한다고 결코 말한 적이 없다. 보이는대로두고 다른 대화 상자를 안에 넣으십시오. 바깥 쪽 대화 상자의'WM_INITDIALOG' 핸들러 안에서'DoModal' 대신'Create'를 사용하십시오. –

1

대신 대화 상자를 CFormView로 바꾸지 않으시겠습니까? 그런 식으로 대화 상자 (폼보기에 포함 된) 주위를 감싸는 프레임 창이 있으며 작업 표시 줄 아이콘을 소유하고있는 프레임 창입니다.

CFormView를 표시하는 SDI 응용 프로그램을 만듭니다. 초기화시 대화 상자를 기본 언어 (또는 사용자가 이전에 선택한 언어)로 표시하십시오. 사용자가 '언어 변경'옵션을 선택하면 새 언어로 표시되는 양식보기를 변경하면됩니다.

보너스 기능 :이 디자인을 사용하면 프레임 워크가 언어 별 단축키와 메뉴 등을 처리 할 수 ​​있습니다.

이 작업을 수행하는 방법에 대한 자세한 내용은

, http://www.codeguru.com/cpp/w-d/doc_view/viewmanagement/article.php/c3341/Multiple-Views-Using-SDI.htm

관련 문제