转换Windows消息的数据类型

来源:互联网 发布:2016qq钓鱼网站源码 编辑:程序博客网 时间:2024/06/07 05:23

这里以窗口处理函数WindowProc(UINT message, WPARAM wParam, LPARAM lParam)为例,例举几个常见的消息,说明如何在WindowProc中对参数wParamlParam进行转换,然后调用相应的处理函数。

 

1  WM_SYSCOMMAND

消息响应函数:void OnSysCommand(UINT nID, LPARAM lParam );

参数转换及调用:OnSysCommand(wParam, lParam);

 

2  WM_NCPAINT

消息响应函数:void OnNcPaint( HRGN rgn );

参数转换及调用OnNcPaint( (HRGN) wParam);

 

3  WM_NCCALCSIZE

消息响应函数void OnNcCalcSize( BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);

参数转换及调用OnNcCalcSize( (BOOL) wParam, (NCCALCSIZE_PARAMS *) lParam);

 

4  WM_SIZE

消息响应函数void OnSize(UINT nType, int cx, int cy );

参数转换及调用OnSize(wParam, LOWORD(lParam), HIWORD(lParam) );

 

5  WM_NCACTIVATE

消息响应函数BOOL OnNcActivate( BOOL bActive );

参数转换及调用OnNcActivate( (BOOL) wParam);

 

6  WM_NCHITTEST

消息响应函数UINT OnNcHitTest( CPoint point );

参数转换及调用 OnNcHitTest(CPoint(LOWORD(lParam), HIWORD(lParam)));

 

7  WM_NCLBUTTONUP

消息响应函数void OnNcLButtonUp( UINT nHitTest, CPoint point );

参数转换及调用OnNcLButtonUp(wParam, CPoint(LOWORD(lParam), HIWORD(lParam)));

 

8  WM_NCMOUSEMOVE

消息响应函数void OnNcMouseMove( UINT nHitTest, CPoint point );

参数转换及调用OnNcMouseMove(wParam,CPoint(LOWORD(lParam), HIWORD(lParam)));

 

9  WM_GETMINMAXINFO

消息响应函数void OnGetMinMaxInfo( MINMAXINFO* lpMMI );

调用方法:OnGetMinMaxInfo( (MINMAXINFO *) lParam);

 

10  WM_WINDOWPOSCHANGING

消息响应函数:void OnWindowPosChanging( WINDOWPOS* lpwndpos );

调用方法:OnWindowPosChanging((WINDOWPOS *) lParam);

 

11WM_ACTIVATE

消息响应函数void OnActivate(UINT nState, CWnd* pWndOther);

调用方法:OnActivate(wParam, CWnd::FromHandle((HWND) lParam));

 

12WM_ERASEBKGND

消息响应函数BOOL OnEraseBkgnd( CDC *pDC);

调用方法:OnEraseBkgnd(CDC::FromHandle((HDC) wParam) );


源文档地址:http://blog.chinaunix.net/uid-20794284-id-470261.html



0 0
原创粉丝点击