将消息传给自己

将消息传给自己
1.自我传递消息,有两种方式实现这项工作:
SendMessage()--直接向窗口传递一个要处理的消息。如果接受窗口已经处理了该消息,在WinProc之后该函数返回。
PostMessage--向窗口传递一个消息序列并且直接返回。如果不在意处理消息的时间延迟,或者该消息优先级较低,可以使用该函数。
(函数原型请查阅MSDN)

2.如果PostMessage()成功的话,将返回一个非零值。注意这一点和SendMessage()不同。因为,SendMessage()实际上调用WinProc(),而PostMessage()只是将一个消息不经处理就放到接收窗口的消息序列中

3例子: if(KEYDOWN(VK_ESCAPE))
    {
     SendMessage(hwnd,WM_DESTROY,0,0);
    }
       注意:KEYDOWN()是自己编写的一个宏调用,返回值说明该键是否被按下。

4另一种创建自己定义消息的方式:WM_USER
例子:假如你要使用WM_USER消息来为内存管理系统创建大量的虚拟消息
#define ALLOC_MEN 0
#define DEALLOC_MEN 1

//send WM_USER message,use the lparam as amount of memory
//and the wparam as the type of operation

SendMessage(hwnd,WM_USER,ALLOC_MEM,1000)

然后在WinProc()中可以这样做:
case WM_USER:
{
//what is the virtual message
switch(wparam)
    {
        case ALLOC_MEN:{}break;
        case DEALLOC_MEN:{}break;
        //..more messages
    }
}break; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值