if(scrollFlag == TRUE){
- this->SendMessageW(WM_VSCROLL,MAKELONG(SB_BOTTOM,0),0);
+ this->m_commentListWindow.SendMessageW(WM_VSCROLL,MAKELONG(SB_BOTTOM,0),0);
}
INT_PTR itemCount = m_header.GetItemCount();
if(lParam->hwndFrom == m_header.m_hWnd){
-
+ LPNMHEADER pNMHeader = (LPNMHEADER) lParam;
+ this->m_header.SetItem(pNMHeader->iItem,pNMHeader->pitem);
+
m_commentListWindow.Invalidate();
this->m_commentListWindow.SendMessage(UM_COMMENTVIEW_SETCTRL,NULL,NULL);
return 0;
}
+ /*
+ LRESULT CCommentView::OnHeaderItemChanged(LPNMHDR lParam){
+
+ if(lParam->hwndFrom == m_header.m_hWnd){
+
+ m_commentListWindow.Invalidate();
+ this->m_commentListWindow.SendMessage(UM_COMMENTVIEW_SETCTRL,NULL,NULL);
+
+
+ }
+ return 0;
+ }
+ */
VOID CCommentView::OnHScroll(INT_PTR loWParam,SHORT hiWParam,HWND lParam){
BOOL CCommentListWindow::IsOnNoOrUserName(UINT_PTR index,const POINT &point){
- POINT mousePoint = {0};
RECT rc = {0};
self.m_header.GetItemRect(index,&rc);
BOOL rslt = FALSE;
-
- if((mousePoint.x >= rc.left && mousePoint.x <= rc.right) && (point.y < static_cast<INT_PTR>(viewSellHeight))){
+ //dumpln(TEXT("index:%d"),index);
+ //dumpln(TEXT("rc.left:%d"),rc.left);
+ //dumpln(TEXT("rc.right:%d"),rc.right);
+ //dumpln(TEXT("point.x:%d"),point.x);
+ if((point.x >= rc.left && point.x <= rc.right) && (point.y < static_cast<INT_PTR>(viewSellHeight))){
INT_PTR heightsum = 0;
auto clickData = self.commentlist.GetShortCut();
CDC cdc = this->GetDC();
rc.top = heightsum -= clickData->viewData.height;
- SIZE stringSize;
+ RECT calcRect = {0};
//rc.bottom = rc.bottom;
cdc.SelectFont(linkFont);
- ::GetTextExtentPoint32(cdc,clickData->chatBuf,clickData->chatBuf.Length(),&stringSize);
- //cdc.DrawTextW(clickData->chatBuf,clickData->chatBuf.Length(),&rc,DT_CALCRECT | DT_WORD_ELLIPSIS);
- rc.bottom += stringSize.cy;
- rc.right += stringSize.cx;
+ //::GetTextExtentPoint32(cdc,clickData->chatBuf,clickData->chatBuf.Length(),&stringSize);
+
+ if(index == CCommentView::USERNAME){
+ LPCTSTR viewStr = clickData->listenerData->userName.Length() == 0 ? clickData->listenerData->user_id : clickData->listenerData->userName;
+ cdc.DrawTextW(viewStr ,_tcslen(viewStr),&calcRect,DT_CALCRECT);
+
+ } else if(index == CCommentView::NO){
+ TCHAR viewStr[sizeof(UINT_PTR) * 8];
+ _stprintf(viewStr,TEXT("%d"),clickData->no);
+ cdc.DrawTextW(viewStr,_tcslen(viewStr),&calcRect,DT_CALCRECT);
+
+ }
+ rc.bottom = rc.top + calcRect.bottom - calcRect.top;
+ rc.right = rc.right > rc.left + calcRect.right - calcRect.left ? rc.left + calcRect.right - calcRect.left : rc.right;
+
+ //dumpln(TEXT("stringSize.cy:%d"),stringSize.cy);
+ //dumpln(TEXT("stringSize.cx:%d"),stringSize.cx);
+ dumpln(TEXT("rc.left:%d"),rc.left);
dumpln(TEXT("rc.right :%d"),rc.right);
- rslt = point.y >= rc.top && point.y <= rc.bottom && point.x >= rc.left && point.x <= rc.right;
+ rslt = (point.y >= rc.top && point.y <= rc.bottom && point.x >= rc.left && point.x <= rc.right);
break;