[英]Call of Dialog.DoModal with ATL does not work on Windows CE 6.0
我們有一個適用於Windows CE和Windows Mobile的應用程序。 如果按下工具欄中的按鈕,則在此應用程序內部應顯示一個對話框。 Windows CE 7和Windows Mobile 6.5.3可以很好地工作,但是由於某些原因,它在Windows CE 6.0上無法工作。 我們正在使用ATL和WTL庫進行實施。
這是調用的代碼
LRESULT CMainWindow::OnSettings(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled) {
this->settingsWnd.DoModal(this->m_hWnd);
return S_OK;
}
我已將其調試到發生錯誤的地方。
它來自
ATL :: CAxDialogImpl:DoModal(HWND hWndParent,LPARAM dwInitParam)
過度
ATLINLINE ATLAPI_(INT_PTR)AtlAxDialogBoxW(HINSTANCE hInstance,LPCWSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogProc,LPARAM dwInitParam)
至
typename Helper :: ReturnType AtlAxDialogCreateT(HINSTANCE hInstance,StringType lpTemplateName,HWND hWndParent,DLGPROC lpDialogProc,LPARAM dwInitParam)
在下面的電話
nRet =(* pFunc)(hInstance,lpDialogTemplate,hWndParent,lpDialogProc,dwInitParam);
結果返回-1,並且呼叫被取消。 在其他操作系統上,不會發生這種情況。
有誰知道這種行為的原因是什么?
編輯10.10.14:這是我們的CE腳本和CE 6.5.3上使用的資源腳本的一個例外。
IDD_SETTINGS DIALOG 0, 0, 156, 169
STYLE DS_SETFONT | WS_POPUP | WS_CAPTION
CAPTION "Einstellungen"
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "",IDC_TAB1,"SysTabControl32",0x0,7,7,142,137
PUSHBUTTON "Cancel",IDCANCEL,93,148,56,16
DEFPUSHBUTTON "OK",IDOK,7,148,56,16
END
IDD_SETTINGS_HP DIALOG 0, 0, 128, 119
STYLE DS_SETFONT | WS_CHILD
FONT 8, "Tahoma"
BEGIN
EDITTEXT IDC_HOMEPAGE,7,16,115,13,ES_AUTOHSCROLL
EDITTEXT IDC_TIMEOUT,88,33,34,13,ES_AUTOHSCROLL
EDITTEXT IDC_TRYTIMES,103,50,19,12,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_HOMEPAGE2,7,76,115,13,ES_AUTOHSCROLL
EDITTEXT IDC_HOMEPAGE3,7,102,115,13,ES_AUTOHSCROLL
LTEXT "Homepage (Main Server)",IDC_STATIC,7,6,80,8
LTEXT "Homepage (Backup Server 1)",IDC_STATIC,7,66,94,8
LTEXT "Homepage (Backup Server 2)",IDC_STATIC,7,92,94,8
LTEXT "Times to try before switching",IDC_STATIC,7,51,93,8
LTEXT "Connection Timeout (ms)",IDC_STATIC,7,35,80,8
END
使用InitCommonControlsEx (ICC_TAB_CLASSES)初始化選項卡控件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.