int CRF_TextPage::GetIndexAtPos(FX_FLOAT x, FX_FLOAT y, FX_FLOAT xTorelance, FX_FLOAT yTorelance) const { int index = 0; CPDF_Point point(x, y); if((index = GetIndexAtPos(point, xTorelance, yTorelance)) < 0) { return -1; } else { return index; } }
/********************************************************************* * 功能:处理界面消息的处理方法 **********************************************************************/ int KUiPortrait::WndProc(unsigned int uMsg, unsigned int uParam, int nParam) { int nRet = 0; switch(uMsg) { case WM_LBUTTONDOWN: { int nIndex; if((nIndex = GetIndexAtPos(GET_X_LPARAM(nParam) - m_nAbsoluteLeft, GET_Y_LPARAM(nParam) - m_nAbsoluteTop)) > 0) { m_nSelectIndex = nIndex; } } break; case WND_N_BUTTON_CLICK: if(uParam == (unsigned int)&m_Confirm && g_pCoreShell && m_nSelectIndex > 0 && m_nSelectIndex <= m_PortraitParam.nPortraitCount) { g_pCoreShell->OperationRequest(GOI_PLAYER_SET_PORTRAIT, 0, m_nSelectIndex); CloseWindow(); } else if(uParam == (unsigned int)&m_Cancel) { CloseWindow(); } break; case WND_N_SCORLLBAR_POS_CHANGED: if(uParam == (unsigned int)&m_ScrollBar) { m_nFirstLine = nParam; } break; default: nRet = KWndImage::WndProc(uMsg, uParam, nParam); break; } return nRet; }