5 //
\92è
\90\94\97p
\82Ì
\96¼
\91O
\8bó
\8aÔ
6 namespace commentViewConstant{
8 //
\83R
\83\81\83\93\83g
\83r
\83\85\81[
\83E
\83B
\83\93\83h
\83E
\96¼
9 const static LPCTSTR NLITE_COMMENTVIEW = TEXT("NLITE_COMMENTVIEW");
11 //
\83R
\83\81\83\93\83g
\83\8a\83X
\83g
\83E
\83B
\83\93\83h
\83E
\96¼
12 const static LPCTSTR NLITE_COMMENTLISTWINDOW = TEXT("NLITE_COMMENTLISTWINDOW");
14 //
\83w
\83b
\83_
\81[
\82Ì
\8d\82\82³
15 const static UINT_PTR HEADER_HAIGHT = 20;
17 //
\83w
\83b
\83_
\81[
\83R
\83\93\83g
\83\8d\81[
\83\8bID
18 const static UINT_PTR HEADER_ID = 257;
20 //
\83R
\83\81\83\93\83g
\83\8a\83X
\83g
\83E
\83B
\83\93\83h
\83EID
21 const static UINT_PTR LISTWINDOW = 258;
24 const static UINT_PTR MENU_OR_ID = 256;
28 //
\83R
\83\81\83\93\83g
\95\
\8e¦
\97p
\83E
\83B
\83\93\83h
\83E
29 class CCommentListWindow:public CWindowImpl<CCommentListWindow>,public CComAutoCriticalSection{
42 DECLARE_WND_CLASS(commentViewConstant::NLITE_COMMENTLISTWINDOW)
46 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
48 BEGIN_MSG_MAP(CCommentListWindow)
49 MSG_WM_LBUTTONDBLCLK(OnLButtonDbClk)
50 MSG_WM_LBUTTONDOWN(OnLButtonDown)
51 MSG_WM_CREATE(OnCreate)
52 MSG_WM_ERASEBKGND(OnEraseBkGnd)
53 MSG_WM_MOUSEWHEEL(OnMouseWheel)
63 ///
\83R
\83\93\83X
\83g
\83\89\83N
\83^
65 CCommentListWindow(CCommentView &self_in);
68 ///
\83f
\83X
\83g
\83\89\83N
\83^
70 ~CCommentListWindow();
74 ///
\83X
\83N
\83\8d\81[
\83\8b\83y
\81[
\83W
\8cv
\8eZ
76 UINT_PTR CalcScrollPage(UINT_PTR nMax);
79 ///
\8ds
\82Ì
\8d\82\82³
\82ð
\96â
\82¢
\8d\87\82í
\82¹
81 UINT_PTR CalcItemHeight(CChatData &chatData);
84 //
\83v
\83\89\83C
\83x
\81[
\83g
\8aÖ
\90\94
88 ///
\83A
\83C
\83e
\83\80\95`
\89æ
90 VOID DrawItem(CDC &dc,RECT &rc,CChatData &chatData);
96 ///
\83N
\83\8a\83b
\83N
\82µ
\82½
\8ds
\82ð
\8cv
\8eZ
98 INT_PTR CalcClickLine(INT_PTR height);
100 //
\83\81\83b
\83Z
\81[
\83W
\83n
\83\93\83h
\83\89
104 ///
\83E
\83B
\83\93\83h
\83E
\8dì
\90¬
\8e\9e\82Ì
\8f\88\97\9d
106 LRESULT OnCreate(LPCREATESTRUCT lpCreateStruct);
109 ///
\83}
\83E
\83X
\83N
\83\8a\83b
\83N
\8e\9e\82Ì
\8f\88\97\9d
111 VOID OnLButtonDown(UINT wParam, _WTYPES_NS::CPoint &point);
114 ///
\95`
\89æ
\8f\88\97\9d
116 VOID OnPaint(HDC hdc);
120 ///
\83T
\83C
\83Y
\95Ï
\8dX
122 VOID OnSize(UINT wParam, _WTYPES_NS::CSize &windowSize);
125 ///
\83}
\83E
\83X
\83_
\83u
\83\8b\83N
\83\8a\83b
\83N
\8e\9e\82Ì
\8f\88\97\9d
127 VOID OnLButtonDbClk(UINT wParam, _WTYPES_NS::CPoint &point);
130 ///
\94w
\8ci
\93h
\82è
\82Â
\82Ô
\82µ
132 LRESULT OnEraseBkGnd(HDC lparam);
135 ///
\83}
\83E
\83X
\83z
\83C
\81[
\83\8b
137 LRESULT OnMouseWheel(UINT loWparam,SHORT hiWparam,CPoint &point);
142 ///
\83R
\83\81\83\93\83g
\83r
\83\85\81[
\83N
\83\89\83X
144 class CCommentView:public CWindowImpl<CCommentView>{
146 friend CCommentListWindow; //
\83t
\83\8c\83\93\83h
\90é
\8c¾
147 //
\83v
\83\89\83C
\83x
\81[
\83g
\8c^
\81E
\83N
\83\89\83X
\92è
\8b`
150 //
\83w
\83b
\83_
\81[
\8fî
\95ñ
\8ai
\94[
\97p
\83I
\83u
\83W
\83F
\83N
\83g
154 UINT_PTR *holizensize;
157 }HEADERSINFO,*LPHEADERSINFO;
164 //
\83\81\83\93\83o
\90é
\8c¾
167 CHeaderCtrl m_header; //
\83w
\83b
\83_
\81[
\83R
\83\93\83g
\83\8d\81[
\83\8b
168 CCommentListWindow m_commentListWindow; //
\83R
\83\81\83\93\83g
\83\8a\83X
\83g
\83E
\83B
\83\93\83h
\83E
169 CNicoLiveStream &stream; //
\95ú
\91\97\83I
\83u
\83W
\83F
\83N
\83g
170 CCommentList commentlist; //
\83R
\83\81\83\93\83g
\83\8a\83X
\83g
171 CommentViewProperty viewproperty; //
\95\
\8e¦
\83v
\83\8d\83p
\83e
\83B
172 HFONT hHeaderFontNew; //
\83w
\83b
\83_
\81[
\83t
\83H
\83\93\83g
193 ///
\83R
\83\93\83X
\83g
\83\89\83N
\83^
195 CCommentView(CNicoLiveStream &stream);
198 ///
\83f
\83X
\83g
\83\89\83N
\83^
205 //
\83E
\83B
\83\93\83h
\83E
\83N
\83\89\83X
\90é
\8c¾
207 DECLARE_WND_CLASS_EX(commentViewConstant::NLITE_COMMENTVIEW,0,COLOR_BACKGROUND)
210 //
\83\81\83b
\83Z
\81[
\83W
\83}
\83b
\83v
212 BEGIN_MSG_MAP(CCommentView)
213 MSG_WM_CREATE(OnCreate)
214 MSG_WM_DESTROY(OnDestroy)
216 MSG_WM_HSCROLL(OnHScroll)
217 MSG_WM_VSCROLL(OnVScroll)
218 MSG_WM_ERASEBKGND(OnEraseBkgnd)
219 NOTIFY_CODE_HANDLER_EX(HDN_ENDTRACK ,OnHeaderEndTrack)
220 NOTIFY_CODE_HANDLER_EX(HDN_ENDDRAG ,OnHeaderEndDrag)
224 ///
\83v
\83\8d\83p
\83e
\83B
\90Ý
\92è
226 VOID SetProperty(CommentViewProperty &setProperty);
229 ///
\83v
\83\8d\83p
\83e
\83B
\8eæ
\93¾
231 CommentViewProperty &GetProperty();
234 ///
\83E
\83B
\83\93\83h
\83E
\8dì
\90¬
236 HWND Create(HWND hWndParent);
239 ///
\83w
\83b
\83_
\82Ì
\89¡
\95\9d\8eæ
\93¾
241 UINT_PTR GetColumnHolSizeSum();
244 ///
\83j
\83R
\90¶
\82É
\90Ú
\91±
\8e\9e\82Ì
\8f\88\97\9d
249 ///
\83j
\83R
\90¶
\82Ì
\83X
\83e
\81[
\83^
\83X
\90Ý
\92è
251 VOID SetStreamStatus(CNicoLiveStream &stream);
254 ///
\83`
\83\83\83b
\83g
\83R
\83\81\83\93\83g
\8eó
\90M
\8e\9e\82Ì
\8f\88\97\9d
256 VOID OnChatReceve(NicoLiveChat_P chat,UINT_PTR count);
259 ///
\83`
\83\83\83b
\83g
\83R
\83\81\83\93\83g
\8eó
\90M
\8am
\92è
\8f\88\97\9d
261 VOID OnChatReceveSettle(UINT_PTR commentCount,UINT_PTR commentCountSum);
265 //
\83v
\83\89\83C
\83x
\81[
\83g
\8aÖ
\90\94
270 ///
\83w
\83b
\83_
\92Ç
\89Á
272 VOID AddHeader(LPHEADERSINFO infos);
275 ///
\83w
\83b
\83_
\82Ì
\89¡
\95\9d\8c\88\92è
277 VOID DecisionHorzSize();
281 ///
\83T
\83C
\83Y
\95Ï
\8dX
\8f\88\97\9d
283 VOID ChangeSize(const SIZE& client);
285 //
\83E
\83B
\83\93\83h
\83E
\83\81\83b
\83Z
\81[
\83W
\83n
\83\93\83h
\83\89
291 ///
\83T
\83C
\83Y
\95Ï
\8dX
\8cã
\8f\88\97\9d
293 LRESULT OnSize(UINT wParam,SIZE lParam);
299 ///
\94w
\8ci
\93h
\82è
\82Â
\82Ô
\82µ
\8f\88\97\9d
301 LRESULT OnEraseBkgnd(HDC wParam);
304 ///
\83E
\83B
\83\93\83h
\83E
\94j
\8aü
\8e\9e\82Ì
\8f\88\97\9d
309 ///
\83w
\83b
\83_
\83A
\83C
\83e
\83\80\95Ï
\8dX
\8e\9e\8f\88\97\9d
311 LRESULT OnHeaderEndTrack(LPNMHDR lParam);
315 ///
\83w
\83b
\83_
\83h
\83\89\83b
\83O
\8cã
\8f\88\97\9d
317 LRESULT OnHeaderEndDrag(LPNMHDR lParam);
321 ///
\89¡
\83X
\83N
\83\8d\81[
\83\8b\8e\9e\82Ì
\8f\88\97\9d
323 VOID OnHScroll(INT_PTR loWParam,SHORT hiWParam,HWND lParam);
326 ///
\8fc
\83X
\83N
\83\8d\81[
\83\8b\8e\9e\82Ì
\8f\88\97\9d
328 VOID OnVScroll(INT_PTR loWParam,SHORT hiWParam,HWND lParam);
331 ///
\8dì
\90¬
\8e\9e\82Ì
\8f\88\97\9d
333 LRESULT OnCreate(LPCREATESTRUCT lpcs);