5 namespace commentViewConstant{
6 const static LPCTSTR NLITE_COMMENTVIEW = TEXT("NLITE_COMMENTVIEW");
8 const static LPCTSTR NLITE_COMMENTLISTBASE = TEXT("NLITE_COMMENTLISTBASE");
10 const static LPCTSTR NLITE_COMMENTLISTWINDOW = TEXT("NLITE_COMMENTLISTWINDOW");
12 const static UINT_PTR HEADER_HAIGHT = 20;
14 const static UINT_PTR HEADER_ID = 257;
16 const static UINT_PTR LISTBOX_ID = 258;
18 const static UINT_PTR MENU_OR_ID = 256;
22 //
\83R
\83\81\83\93\83g
\95\
\8e¦
\97p
\83E
\83B
\83\93\83h
\83E
23 class CCommentListWindow:public CWindowImpl<CCommentListWindow>,public CComAutoCriticalSection{
32 selectBack = RGB(255,240,240),
33 outLineSelect = RGB(255,0,0),
34 outLineNomal = RGB(0,0,0),
35 colLine = RGB(224,224,224)
41 DECLARE_WND_CLASS(commentViewConstant::NLITE_COMMENTLISTWINDOW)
45 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
47 BEGIN_MSG_MAP(CCommentListWindow)
48 MSG_WM_LBUTTONDBLCLK(OnLButtonDbClk)
49 MSG_WM_LBUTTONDOWN(OnLButtonDown)
50 MSG_WM_CREATE(OnCreate)
51 MSG_WM_ERASEBKGND(OnEraseBkGnd)
52 MSG_WM_MOUSEWHEEL(OnMouseWheel)
62 ///
\83R
\83\93\83X
\83g
\83\89\83N
\83^
64 CCommentListWindow(CCommentView &self_in);
67 ///
\83f
\83X
\83g
\83\89\83N
\83^
69 ~CCommentListWindow();
73 ///
\83X
\83N
\83\8d\81[
\83\8b\83y
\81[
\83W
\8cv
\8eZ
75 UINT_PTR CalcScrollPage();
78 ///
\8ds
\82Ì
\8d\82\82³
\82ð
\96â
\82¢
\8d\87\82í
\82¹
80 UINT_PTR CalcItemHeight(CChatData &chatData);
83 //
\83v
\83\89\83C
\83x
\81[
\83g
\8aÖ
\90\94
87 ///
\83A
\83C
\83e
\83\80\95`
\89æ
89 VOID DrawItem(CDC &dc,RECT &rc,CChatData &chatData);
95 ///
\83N
\83\8a\83b
\83N
\82µ
\82½
\8ds
\82ð
\8cv
\8eZ
97 INT_PTR CalcClickLine(INT_PTR height);
99 //
\83\81\83b
\83Z
\81[
\83W
\83n
\83\93\83h
\83\89
103 ///
\83E
\83B
\83\93\83h
\83E
\8dì
\90¬
\8e\9e\82Ì
\8f\88\97\9d
105 LRESULT OnCreate(LPCREATESTRUCT lpCreateStruct);
108 ///
\83}
\83E
\83X
\83N
\83\8a\83b
\83N
\8e\9e\82Ì
\8f\88\97\9d
110 VOID OnLButtonDown(UINT wParam, _WTYPES_NS::CPoint &point);
113 ///
\95`
\89æ
\8f\88\97\9d
115 VOID OnPaint(HDC hdc);
119 ///
\83T
\83C
\83Y
\95Ï
\8dX
121 VOID OnSize(UINT wParam, _WTYPES_NS::CSize &windowSize);
124 ///
\83}
\83E
\83X
\83_
\83u
\83\8b\83N
\83\8a\83b
\83N
\8e\9e\82Ì
\8f\88\97\9d
126 VOID OnLButtonDbClk(UINT wParam, _WTYPES_NS::CPoint &point);
129 ///
\94w
\8ci
\93h
\82è
\82Â
\82Ô
\82µ
131 LRESULT OnEraseBkGnd(HDC lparam);
134 ///
\83}
\83E
\83X
\83z
\83C
\81[
\83\8b
136 LRESULT OnMouseWheel(UINT loWparam,SHORT hiWparam,CPoint &point);
140 class CCommentView:public CWindowImpl<CCommentView>{
142 friend CCommentListWindow;
143 //
\83v
\83\89\83C
\83x
\81[
\83g
\8c^
\81E
\83N
\83\89\83X
\92è
\8b`
149 UINT_PTR *holizensize;
152 }HEADERSINFO,*LPHEADERSINFO;
159 //
\83\81\83\93\83o
\90é
\8c¾
162 CHeaderCtrl m_header;
163 CCommentListWindow m_commentListWindow;
165 CStreamStatus streamStatus;
166 CCommentList commentlist;
167 CommentViewProperty viewproperty;
168 // INT_PTR viewStartHeight;
169 HFONT hHeaderFontNew;
190 ///
\83R
\83\93\83X
\83g
\83\89\83N
\83^
195 ///
\83f
\83X
\83g
\83\89\83N
\83^
202 //
\83E
\83B
\83\93\83h
\83E
\83N
\83\89\83X
\90é
\8c¾
204 DECLARE_WND_CLASS_EX(commentViewConstant::NLITE_COMMENTVIEW,0,COLOR_BACKGROUND)
207 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
209 BEGIN_MSG_MAP(CCommentView)
210 MSG_WM_CREATE(OnCreate)
211 MSG_WM_DESTROY(OnDestroy)
213 MSG_WM_HSCROLL(OnHScroll)
214 MSG_WM_VSCROLL(OnVScroll)
215 MSG_WM_ERASEBKGND(OnEraseBkgnd)
216 NOTIFY_CODE_HANDLER_EX(HDN_ENDTRACK ,OnHeaderEndTrack)
217 NOTIFY_CODE_HANDLER_EX(HDN_ENDDRAG ,OnHeaderEndDrag)
221 ///
\83v
\83\8d\83p
\83e
\83B
\90Ý
\92è
223 VOID SetProperty(CommentViewProperty &setProperty);
226 ///
\83v
\83\8d\83p
\83e
\83B
\8eæ
\93¾
228 CommentViewProperty &GetProperty();
231 ///
\83E
\83B
\83\93\83h
\83E
\8dì
\90¬
233 HWND Create(HWND hWndParent);
236 ///
\83w
\83b
\83_
\82Ì
\89¡
\95\9d\8eæ
\93¾
238 UINT_PTR GetColumnHolSizeSum();
241 ///
\83j
\83R
\90¶
\82É
\90Ú
\91±
\8e\9e\82Ì
\8f\88\97\9d
246 ///
\83j
\83R
\90¶
\82Ì
\83X
\83e
\81[
\83^
\83X
\90Ý
\92è
248 VOID SetStreamStatus(StreamStatus &st);
251 ///
\83`
\83\83\83b
\83g
\83R
\83\81\83\93\83g
\8eó
\90M
\8e\9e\82Ì
\8f\88\97\9d
253 VOID OnChatReceve(NicoLiveChat_P chat,UINT_PTR count);
256 ///
\83`
\83\83\83b
\83g
\83R
\83\81\83\93\83g
\8eó
\90M
\8am
\92è
\8f\88\97\9d
258 VOID OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum);
262 //
\83v
\83\89\83C
\83x
\81[
\83g
\8aÖ
\90\94
267 ///
\83w
\83b
\83_
\92Ç
\89Á
269 VOID AddHeader(LPHEADERSINFO infos);
272 ///
\83w
\83b
\83_
\82Ì
\89¡
\95\9d\8c\88\92è
274 VOID DecisionHorzSize();
278 ///
\83T
\83C
\83Y
\95Ï
\8dX
\8f\88\97\9d
280 VOID ChangeSize(const SIZE& client);
282 //
\83E
\83B
\83\93\83h
\83E
\83\81\83b
\83Z
\81[
\83W
\83n
\83\93\83h
\83\89
288 ///
\83T
\83C
\83Y
\95Ï
\8dX
\8cã
\8f\88\97\9d
290 LRESULT OnSize(UINT wParam,SIZE lParam);
296 ///
\94w
\8ci
\93h
\82è
\82Â
\82Ô
\82µ
\8f\88\97\9d
298 LRESULT OnEraseBkgnd(HDC wParam);
301 ///
\83E
\83B
\83\93\83h
\83E
\94j
\8aü
\8e\9e\82Ì
\8f\88\97\9d
306 ///
\83w
\83b
\83_
\83A
\83C
\83e
\83\80\95Ï
\8dX
\8e\9e\8f\88\97\9d
308 LRESULT OnHeaderEndTrack(LPNMHDR lParam);
312 ///
\83w
\83b
\83_
\83h
\83\89\83b
\83O
\8cã
\8f\88\97\9d
314 LRESULT OnHeaderEndDrag(LPNMHDR lParam);
318 ///
\89¡
\83X
\83N
\83\8d\81[
\83\8b\8e\9e\82Ì
\8f\88\97\9d
320 VOID OnHScroll(INT_PTR loWParam,SHORT hiWParam,HWND lParam);
323 ///
\8fc
\83X
\83N
\83\8d\81[
\83\8b\8e\9e\82Ì
\8f\88\97\9d
325 VOID OnVScroll(INT_PTR loWParam,SHORT hiWParam,HWND lParam);
328 ///
\8dì
\90¬
\8e\9e\82Ì
\8f\88\97\9d
330 LRESULT OnCreate(LPCREATESTRUCT lpcs);