// DlgIndicator.cpp: 实现文件 // #include "DlgPageErrMsg.h" #include "resource.h" #include dlg_err_msg::dlg_err_msg(HWND parent) : dlg_base(parent, IDD_ERR_MSG), list_(NULL) { create(); } dlg_err_msg::~dlg_err_msg() { } void dlg_err_msg::init_error_items(void) { LVITEMW item = { 0 }; int ind = ListView_GetItemCount(list_); std::wstring text(L""); wchar_t buf[80] = { 0 }; #define INSERT_ERROR_MSG(err) \ item.mask = LVIF_TEXT; \ item.iItem = ListView_GetItemCount(list_); \ text = std::to_wstring(item.iItem + 1); \ item.pszText = &text[0]; \ ind = ListView_InsertItem(list_, &item); \ swprintf_s(buf, _countof(buf) - 1, L"%05d - 0x%04X", SCANNER_ERR_##err, SCANNER_ERR_##err); \ ListView_SetItemText(list_, ind, 1, buf); \ text = dlg_base::m2u(STATU_DESC_SCANNER_ERR_##err, CP_UTF8); \ ListView_SetItemText(list_, ind, 2, &text[0]); INSERT_ERROR_MSG(OK); INSERT_ERROR_MSG(INVALID_PARAMETER); INSERT_ERROR_MSG(USER_CANCELED); INSERT_ERROR_MSG(INSUFFICIENT_MEMORY); INSERT_ERROR_MSG(ACCESS_DENIED); INSERT_ERROR_MSG(IO_PENDING); INSERT_ERROR_MSG(NOT_EXACT); INSERT_ERROR_MSG(CONFIGURATION_CHANGED); INSERT_ERROR_MSG(NOT_OPEN); INSERT_ERROR_MSG(NOT_START); INSERT_ERROR_MSG(NOT_ANY_MORE); INSERT_ERROR_MSG(NO_DATA); INSERT_ERROR_MSG(HAS_DATA_YET); INSERT_ERROR_MSG(OUT_OF_RANGE); INSERT_ERROR_MSG(IO); INSERT_ERROR_MSG(TIMEOUT); INSERT_ERROR_MSG(OPEN_FILE_FAILED); INSERT_ERROR_MSG(CREATE_FILE_FAILED); INSERT_ERROR_MSG(WRITE_FILE_FAILED); INSERT_ERROR_MSG(DATA_DAMAGED); INSERT_ERROR_MSG(OPENED_BY_OTHER_PROCESS); INSERT_ERROR_MSG(LANG_PAK_LOST); INSERT_ERROR_MSG(RELOAD_IMAGE_PARAM); INSERT_ERROR_MSG(RELOAD_OPT_PARAM); INSERT_ERROR_MSG(USB_INIT_FAILED); INSERT_ERROR_MSG(USB_REGISTER_PNP_FAILED); INSERT_ERROR_MSG(USB_CLAIM_INTERFACE_FAILED); INSERT_ERROR_MSG(DEVICE_NOT_FOUND); INSERT_ERROR_MSG(DEVICE_NOT_SUPPORT); INSERT_ERROR_MSG(DEVICE_BUSY); INSERT_ERROR_MSG(DEVICE_SLEEPING); INSERT_ERROR_MSG(DEVICE_COUNT_MODE); INSERT_ERROR_MSG(DEVICE_STOPPED); INSERT_ERROR_MSG(DEVICE_COVER_OPENNED); INSERT_ERROR_MSG(DEVICE_NO_PAPER); INSERT_ERROR_MSG(DEVICE_FEEDING_PAPER); INSERT_ERROR_MSG(DEVICE_DOUBLE_FEEDING); INSERT_ERROR_MSG(DEVICE_PAPER_JAMMED); INSERT_ERROR_MSG(DEVICE_STAPLE_ON); INSERT_ERROR_MSG(DEVICE_PAPER_SKEW); INSERT_ERROR_MSG(DEVICE_SIZE_CHECK); INSERT_ERROR_MSG(DEVICE_DOGEAR); INSERT_ERROR_MSG(DEVICE_NO_IMAGE); INSERT_ERROR_MSG(DEVICE_SCANN_ERROR); INSERT_ERROR_MSG(DEVICE_PC_BUSY); INSERT_ERROR_MSG(DEVICE_ISLOCK); INSERT_ERROR_MSG(DEVICE_UPGRADE_SUCCESSFUL); INSERT_ERROR_MSG(DEVICE_UPGRADE_FAIL); INSERT_ERROR_MSG(DEVICE_AUTO_FAIL_OVER); INSERT_ERROR_MSG(DEVICE_AUTO_FAIL_INFO); INSERT_ERROR_MSG(DEVICE_DISTORTION); INSERT_ERROR_MSG(DEVICE_MAYBE_IS_HOLE); INSERT_ERROR_MSG(DEVICE_DEVS_BOOTING); INSERT_ERROR_MSG(DEVICE_UNKNOWN_STATUS); } BOOL dlg_err_msg::handle_message(UINT msg, WPARAM wp, LPARAM lp) { wchar_t text[40] = { 0 }; BOOL ret = TRUE; switch (msg) { case WM_INITDIALOG: on_init_dlg(); UpdateWindow(hwnd()); break; case WM_COMMAND: handle_command(HIWORD(wp), LOWORD(wp), (HWND)lp); break; case WM_NOTIFY: ret = on_notify((int)wp, (LPNMHDR)lp); break; default: ret = FALSE; } return ret; } void dlg_err_msg::handle_command(WORD code, WORD id, HANDLE ctrl) { } void dlg_err_msg::on_init_dlg(void) { LVCOLUMNW col; int ind = 0; list_ = get_item(IDC_LIST_ERR_CODE); ListView_SetExtendedListViewStyle(list_, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); col.mask = LVCF_TEXT | LVCF_WIDTH; col.pszText = (wchar_t*)L"\u5E8F\u53F7"; col.cx = 40; ListView_InsertColumn(list_, ind++, &col); col.pszText = (wchar_t*)L"\u9519\u8BEF\u4EE3\u7801\uFF08\u5341/\u5341\u516D\u8FDB\u5236\uFF09"; col.cx = 150; ListView_InsertColumn(list_, ind++, &col); col.pszText = (wchar_t*)L"\u9519\u8BEF\u63CF\u8FF0"; col.cx = 319; ListView_InsertColumn(list_, ind++, &col); init_error_items(); } BOOL dlg_err_msg::on_notify(int ctrl_id, LPNMHDR pnmh) { BOOL ret = TRUE; if (pnmh->hwndFrom == list_) { } return ret; }