转换Windows消息的数据类型

7 篇文章 0 订阅

这里以窗口处理函数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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值