문제

다음과 같은 문제가 있습니다.

대화 상자를 열고 SIP 키보드를 열어 양식을 채운 다음 SIP를 최소화합니다. 그런 다음 현재 대화 상자를 닫고 기본 대화 상자로 돌아 오면 SIP 키보드가 다시 나타납니다. 설명 된 문제를 해결하기 위해 할 수있는 일을 프로그래밍하거나 더 나은 SIP 키보드를 어떻게 표시/숨길 수 있는지 아는 사람이 있습니까? 사용자가 키보드를 최소화하면 대화 상자 전환시 화면에 표시되지 않아야합니다.

감사!

도움이 되었습니까?

해결책

우리는 사용 Shsippreference 응용 프로그램의 SIP 표시를 제어합니다. 나는 그것이 MFC와 함께 작동한다는 것을 알고 있으며 창에 대한 SIP 상태를 설정하여 한 번 설정할 수 있고 창이 표시 될 때마다 SIP 상태가 세트 상태로 복원 될 것임을 알고 있습니다.

나는 Sipshowim에 대해 들어 본 적이 없지만 MSDN 페이지에서 링크 된 것을 보았습니다.

SIP (Sipshowim)를 보여주고 숨기는 표준 방법은 MFC 대화에서 몇 가지 문제를 보여줍니다.

다른 팁

당신은 전화하고 싶을 것입니다 SIPSHOWIM() Coredll에서. 이 MSDN 기사를 참조하십시오.

http://msdn.microsoft.com/en-us/library/ms838341.aspx

Microsoft.windowsce.forms.inputpanel 구성 요소를 사용할 수 있습니다. 활성화 된 속성을 사용하여 프로그래밍 방식으로 SIP를 표시/숨길 수 있습니다. 도구 상자에는 입력 패널 구성 요소가 있습니다.

입력 패널을위한 enabledchanged 이벤트도 있습니다. 당신은 일반적으로 텍스트 상자의 getfocus 이벤트에서 SIP를 보여주고 싶습니다.

MFC를 사용하고 있습니까?

문제는 SIP 상태가 응용 프로그램 당 아닌 대화 별입니다. 따라서 모든 대화 상자 내에서 독립적으로 보여 주거나 숨겨야합니다.

void CAaa::OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized )
{
if(nState == WA_ACTIVE || nState == WA_CLICKACTIVE)
{
        SHINITDLGINFO shidi;
            shidi.dwMask = SHIDIM_FLAGS;
            shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR|SHIDIF_SIPDOWN | SHFS_HIDETASKBAR;
            shidi.hDlg = m_hWnd;
            SHInitDialog(&shidi);

        SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON |SHFS_HIDESTARTICON);
}
}

필요하지 않은 경우 전체 화면 또는 작업 표시 줄 키를 제거해야합니다. :)

그리고 사용해야 할 다른 것 :

 SHSipPreference(m_hWnd,SIP_UP); // SIP_DOWN

또는:

 HWND hwndCB = ::FindWindow(_T("SipWndClass"),_T(""));
      ::ShowWindow( hwndCB, SW_SHOW);
      hwndCB = ::FindWindow(_T("MS_SIPBUTTON"),NULL);
      ::ShowWindow( hwndCB, SW_SHOW);

그러나 후자는 그렇게 표준이 아닐 수 있습니다 :) 여전히 작동합니다. 시도해보십시오.

... 다른 대화 상자에서는 키보드 레이아웃을 숫자로 설정하려고합니다. 따라서 생성자에 다음 줄을 추가했습니다. SendMessage (em_setinputmode, 0, eim_numbers); 그러나이 줄을 제거하면 하나의 문제를 해결하고 다른 문제를 만듭니다.

getLasterror ()는 6 (유효하지 않은 핸들) 또는 120 (지원되지 않음)입니다. EM_SETINPUTMODE는 스마트 폰에서만 지원되며 스마트 폰에는 한 모의가 없습니다. 보다 http://msdn.microsoft.com/en-us/library/bb416452.aspx.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top