void CDuiListBox::OnKeyDown( TCHAR nChar, UINT nRepCnt, UINT nFlags ) { int nNewSelItem = -1; CDuiWindow *pOwner = GetOwner(); if (pOwner && (nChar == VK_ESCAPE)) { pOwner->DuiSendMessage(WM_KEYDOWN, nChar, MAKELONG(nFlags, nRepCnt)); return; } if (nChar == VK_DOWN && m_iSelItem < GetCount() - 1) nNewSelItem = m_iSelItem+1; else if (nChar == VK_UP && m_iSelItem > 0) nNewSelItem = m_iSelItem-1; else if (pOwner && nChar == VK_RETURN) nNewSelItem = m_iSelItem; if(nNewSelItem!=-1) { EnsureVisible(nNewSelItem); NotifySelChange(m_iSelItem,nNewSelItem, m_bHotTrack&&nChar!=VK_RETURN ? WM_MOUSEMOVE : WM_LBUTTONUP); } }
void CDuiListBox::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { CDuiWindow *pOwner = GetOwner(); if (pOwner) pOwner->DuiSendMessage(WM_CHAR, nChar, MAKELONG(nFlags, nRepCnt)); }