INT_PTR CDialogAbout::CTabSkins::OnCommand(WPARAM wParam, LPARAM lParam) { switch (LOWORD(wParam)) { case IDC_ABOUTSKINS_ITEMS_LISTBOX: if (HIWORD(wParam) == LBN_SELCHANGE) { UpdateMeasureList(NULL); } break; case IDM_COPY: { HWND item = GetFocus(); if (item == GetDlgItem(m_Window, IDC_ABOUTSKINS_ITEMS_LISTVIEW)) { int sel = ListView_GetNextItem(item, -1, LVNI_FOCUSED | LVNI_SELECTED); if (sel != -1) { std::wstring tmpSz(512, L'0'); ListView_GetItemText(item, sel, 2, &tmpSz[0], 512); CSystem::SetClipboardText(tmpSz); } } } break; default: return 1; } return 0; }
INT_PTR DialogAbout::TabSkins::OnNotify(WPARAM wParam, LPARAM lParam) { LPNMHDR nm = (LPNMHDR)lParam; switch (nm->code) { case LVN_KEYDOWN: { NMLVKEYDOWN* lvkd = (NMLVKEYDOWN*)nm; if (lvkd->wVKey == 0x43 && IsCtrlKeyDown()) // CTRL + C. { int sel = ListView_GetNextItem(nm->hwndFrom, -1, LVNI_FOCUSED | LVNI_SELECTED); if (sel != -1) { std::wstring tmpSz(512, L'0'); ListView_GetItemText(nm->hwndFrom, sel, 2, &tmpSz[0], 512); System::SetClipboardText(tmpSz); } } } break; default: return FALSE; } return TRUE; }
INT_PTR CDialogAbout::CTabLog::OnCommand(WPARAM wParam, LPARAM lParam) { switch (LOWORD(wParam)) { case IDC_ABOUTLOG_ERROR_CHECKBOX: if (HIWORD(wParam) == BN_CLICKED) { m_Error = !m_Error; } break; case IDC_ABOUTLOG_WARNING_CHECKBOX: if (HIWORD(wParam) == BN_CLICKED) { m_Warning = !m_Warning; } break; case IDC_ABOUTLOG_NOTICE_CHECKBOX: if (HIWORD(wParam) == BN_CLICKED) { m_Notice = !m_Notice; } break; case IDC_ABOUTLOG_DEBUG_CHECKBOX: if (HIWORD(wParam) == BN_CLICKED) { m_Debug = !m_Debug; } break; case IDM_COPY: { HWND item = GetFocus(); if (item == GetDlgItem(m_Window, IDC_ABOUTLOG_ITEMS_LISTVIEW)) { int sel = ListView_GetNextItem(item, -1, LVNI_FOCUSED | LVNI_SELECTED); if (sel != -1) { std::wstring tmpSz(512, L'0'); ListView_GetItemText(item, sel, 2, &tmpSz[0], 512); CSystem::SetClipboardText(tmpSz); } } } break; default: return 1; } return 0; }
std::wstring GetFormattedString(UINT id, ...) { LPWSTR pBuffer = NULL; va_list args = NULL; va_start(args, id); DWORD len = FormatMessage(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ALLOCATE_BUFFER, GetString(id), 0, 0, (LPWSTR)&pBuffer, 0, &args); va_end(args); std::wstring tmpSz(len ? pBuffer : L""); if (pBuffer) LocalFree(pBuffer); return tmpSz; }