MakeKeyLparam 的简化

MakeKeyLparam是一个用于构造LPARAM参数的函数,主要应用于Windows消息处理,如WM_KEYDOWN, WM_KEYUP和WM_CHAR等。它通过根据消息类型设置高位字节,结合扫描码和重复次数生成LPARAM值。简化后的MakeKeyLparam函数只设置了高位字节和发送次数,省去了扫描码部分。示例展示了如何使用该函数发送Alt+F到Notepad。" 133316628,20038414,ARMv8/ARMv9特权级跳转模型与嵌入式系统,"['嵌入式', 'ARM架构', '处理器', '系统设计']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 . MakeKeyLparam 是个函数.

2.  MakeKeyLparam 用于构造 消息的 LPARAM

3.  MakeKeyLparam 来自VB ?

4. MakeKeyLparam  的简化:

int MakeKeyLparam(/* int VirtualKey ,*/ int flag)
{
    UINT sCode;
//Firstbyte ; lparam 参数的 24-31位
UINT Firstbyte;
    switch (flag)
    {
      case WM_KEYDOWN:    Firstbyte = 0;   break;
      case WM_KEYUP:      Firstbyte = 0xC0;break;
      case WM_CHAR:       Firstbyte = 0x20;break;
      case WM_SYSKEYDOWN: Firstbyte = 0x20;break;
      case WM_SYSKEYUP:   Firstbyte = 0xE0;break;
      case WM_SYSCHAR:    Firstbyte = 0xE0;break;
    }
// 键的扫描码; lparam 参数 的 16-23位
// 16–23 Specifies the scan code. 
// UINT iKey = MapVirtualKey(VirtualKey, 0);
// 1为 lparam 参数的 0-15位,即发送次数
// 0–15 Specifies the repeat count for the current message. 
    sCode = (Firstbyte << 24) +1;// + (iKey << 16) + 1; 
    return sCode;
}

5. MakeKeyLparam 的使用“

发送alt+f 到 notepad:

::PostMessage(hwnd, WM_SYSKEYDOWN, VK_MENU, MakeKeyLparam(WM_SYSKEYDOWN));
::PostMessage(hwnd, WM_SYSKEYDOWN, 'F', MakeKeyLparam(WM_SYSKEYDOWN));
::PostMessage(hwnd, WM_CHAR, 'F', MakeKeyLparam(WM_CHAR));
::PostMessage(hwnd, WM_SYSKEYUP, 'F', MakeKeyLparam(WM_SYSKEYUP));
::PostMessage(hwnd, WM_KEYUP, VK_MENU, MakeKeyLparam(WM_KEYUP));

//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值