我们已经为Windows和Windows提供了一个应用程序。在此应用程序中,如果按下工具栏中的按钮,则应显示对话框。这很好地工作了Windows 7和WindowsMobile6.5.3,但由于某种原因,它不能在WindowsCE6.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)
结束
ATLAPI_(INT_PTR) AtlAxDialogBoxW(HINSTANCE hInstance,LPCWSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogProc,LPARAM dwInitParam)
至
typename Helper::ReturnType (hInstance hInstance,StringType lpTemplateName,HWND hWndParent,DLGPROC lpDialogProc,LPARAM dwInitParam)
在这里接电话
nRet = (*pFunc)(hInstance,lpDialogTemplate,hWndParent,lpDialogProc,dwInitParam);
结果是返回-1,并且取消调用。在另一个操作系统上,这种情况不会发生。
有谁知道这种行为的原因是什么吗?
编辑10.10.14:这是我们的资源脚本中的一个例外,它正在运行CE 7和ME 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发布于 2014-10-10 14:27:42
使用InitCommonControlsEx(ICC_TAB_CLASSES)初始化选项卡控件。
https://stackoverflow.com/questions/26059615
复制相似问题