none
當小鍵盤彈出時 如何不使dialog縮小 RRS feed

  • 問題

  • dear All,

    目前使用vs2005/mfc/wm5 for ppc
    dialog project type

    發現
    如果在dialog上放一個edit box, 將小鍵盤啟動在 當editbox setfocus時
    此時dialog會自動縮小使得上方的caption title & 下方的menubar的空間露出來
    也就是dialog的size會改變
    小鍵盤會開啟在menubar之上的空間

    有無方法可以在小鍵盤打開時 dialog的size不改變

    還請不吝賜教 謝謝

    2007年11月22日 上午 07:53

解答

  • 問題已經解決
    方法及出處如下
    ========================================
    You need to handle WM_SETTINGCHANGE and WM_ACTIVATE messages and call basic
    CWnd parent methods instead of CDialog one's.
    Looks like this:
    程式碼區塊

    void CMyDialog::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
    {
         // was:  CDialog::OnSettingChange( uFlags, lpszSection);
         CWnd::OnSettingChange( uFlags, lpszSection);
    }
    void CMyDialog::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
    {
      // was CDialog::OnActivate(nState, pWndOther, bMinimized);
       CWnd::OnActivate(nState, pWndOther, bMinimized);
    }



    It is because CDialog implementation calls SHHandleWMSettingChange and
    SHHandleWMActivate.

    --
    Fedor Ezhov
    Spb Software House, http://www.spbsoftwarehouse.com

    2007年11月23日 上午 06:57