| 490 | } |
| 491 | |
| 492 | LRESULT AutoComplete::HandleCustomDraw(HWND hWnd, NMLVCUSTOMDRAW* pInfo) |
| 493 | { |
| 494 | switch (pInfo->nmcd.dwDrawStage) |
| 495 | { |
| 496 | case CDDS_PREPAINT: |
| 497 | return CDRF_NOTIFYITEMDRAW; |
| 498 | |
| 499 | case CDDS_ITEMPREPAINT: |
| 500 | return CDRF_NOTIFYSUBITEMDRAW; |
| 501 | |
| 502 | case CDDS_SUBITEM | CDDS_ITEMPREPAINT: { |
| 503 | HWND hList = m_listHwnd; |
| 504 | |
| 505 | int idx = (int) pInfo->nmcd.dwItemSpec; |
| 506 | int sta = ListView_GetItemState(hList, idx, LVIS_SELECTED); |
| 507 | |
| 508 | if (sta & LVIS_SELECTED) { |
| 509 | pInfo->clrTextBk = GetSysColor(COLOR_HIGHLIGHT); |
| 510 | pInfo->clrText = GetSysColor(COLOR_HIGHLIGHTTEXT); |
| 511 | } |
| 512 | else if (pInfo->iSubItem == COL_SUBNAME) { |
| 513 | pInfo->clrTextBk = GetSysColor(COLOR_WINDOW); |
| 514 | pInfo->clrText = GetSysColor(COLOR_GRAYTEXT); |
| 515 | } |
| 516 | else { |
| 517 | pInfo->clrTextBk = GetSysColor(COLOR_WINDOW); |
| 518 | pInfo->clrText = GetSysColor(COLOR_MENUTEXT); |
| 519 | } |
| 520 | |
| 521 | return CDRF_NEWFONT; |
| 522 | } |
| 523 | |
| 524 | default:DbgPrintW("Unhandled draw stage %d", pInfo->nmcd.dwDrawStage); |
| 525 | } |
| 526 | |
| 527 | return CDRF_DODEFAULT; |
| 528 | } |
| 529 | |
| 530 | LRESULT AutoComplete::HandleGetDispInfo(HWND hWnd, NMLVDISPINFO* pInfo) |
| 531 | { |