diff --git a/modules/twainui/twainui.cpp b/modules/twainui/twainui.cpp index 023f0ad0..4aacc6b8 100644 --- a/modules/twainui/twainui.cpp +++ b/modules/twainui/twainui.cpp @@ -1,4 +1,5 @@ #include "twainui.h" +#include #include "dialog_device_select.h" #include "dialog_progress_ui.h" #include "hg_settingdialog.h" @@ -144,3 +145,24 @@ int show_progress_ui(HWND parent, std::function callback, std: return 0; } + +int show_messagebox_ui(HWND parent, int event, void *msg, int flag) +{ + QWidget *qParent = nullptr; +#ifdef HG_CMP_MSC + if (!g_ownApplication) + g_ownApplication = QMfcApp::pluginInstance(g_hInst); + QWinWidget *win = new QWinWidget(parent); + if (nullptr != parent) + { + win->showCentered(); + qParent = win; + } +#else + qParent = parent; +#endif + + char *str = (char*)msg; + QMessageBox::critical(qParent, QObject::tr("Prompt"), QString::fromStdString(str)); + return UI_RESULT_OK; +} diff --git a/modules/twainui/twainui.h b/modules/twainui/twainui.h index e10cedc9..f9c997e6 100644 --- a/modules/twainui/twainui.h +++ b/modules/twainui/twainui.h @@ -79,3 +79,15 @@ int show_setting_ui(SANE_Handle device, HWND parent, LPSANEAPI api, const char * // // 返回: ui_result 类型, UI_RESULT_FAILED or UI_RESULT_OK int show_progress_ui(HWND parent, std::function callback, std::function* notify); +// 功能: 不显示扫描进度界面,设备返回错误信息指示框,非模态 +// +// 参数: parent - 父窗口句柄 +// +// events - SANE_EVENT_SCAN_FINISHED +// +// void* - (utf8*)message, +// +// flag - error code (0 is success) +// +// 返回: ui_result 类型, UI_RESULT_FAILED or UI_RESULT_OK +int show_messagebox_ui(HWND parent,int event, void* msg, int flag);