TPYI123 2023-04-10 09:29 采纳率: 88%
浏览 28
已结题

PostMessaged 发过去没有效果

PostMessaged 发过去没有效果可能是后面两个参数的问题 不知道怎么填
::PostMessage(CPublic::g_hwnd, WM_SETFOCUS, 0, 0); 后两个参数怎么填
::PostMessage(CPublic::g_hwnd, WM_ENABLE, 0, 0);后两个参数怎么填
::PostMessage(CPublic::g_hwnd, WM_KEYDOWN, VK_RETURN, keyData);

我这样测试过:
我在发送PostMessage前先sleep(5000)
之后手动调整整好焦点到对应的按钮上
5秒到了之后::PostMessage(CPublic::g_hwnd, WM_KEYDOWN, VK_RETURN, keyData);
这样是成功的

但是用了WM_SETFOCUS 和 WM_ENABLE 或者不用 , 都是不成功的 所以才想到后面两个参数的问题
感觉需要先把焦点弄到对应按钮上
如果不是参数问题,也是ENABLE,再SETFOCUS的先后那应该怎么弄了

  • 写回答

3条回答 默认 最新

  • Leodong. 2023-04-10 09:58
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

    PostMessage函数的第三个和第四个参数分别表示wParam和lParam,它们的含义取决于消息的类型。下面是对您提到的三个消息类型的解释:
    
    1. WM_SETFOCUS
    
    该消息用于设置窗口焦点。第三个参数应该是0,表示将焦点设置为接收消息的窗口。第四个参数应该是0,因为它不需要任何额外的信息。所以,正确的调用方式应该是:
    
    ::PostMessage(CPublic::g_hwnd, WM_SETFOCUS, 0, 0);
    
    2. WM_ENABLE
    
    该消息用于启用或禁用窗口。第三个参数应该是0或1,表示启用或禁用窗口。第四个参数也应该是0,因为它不需要任何额外的信息。所以,正确的调用方式应该是:
    
    ::PostMessage(CPublic::g_hwnd, WM_ENABLE, 0, 0);
    
    3. WM_KEYDOWN
    
    该消息用于发送一个键盘按键消息。第三个参数应该是发送的键盘按键的虚拟键码,例如VK_RETURN表示回车键。第四个参数应该是0或者一个包含一些额外信息的值。所以,正确的调用方式应该是:
    
    ::PostMessage(CPublic::g_hwnd, WM_KEYDOWN, VK_RETURN, 0);
    
    在您的情况下,如果您想要在发送WM_SETFOCUS或WM_ENABLE消息之前先将焦点放在对应的按钮上,可以使用SendMessage函数发送WM_ACTIVATE消息来激活窗口和设置焦点。例如:
    
    // 激活窗口并设置焦点在按钮上
    ::SendMessage(CPublic::g_hwnd, WM_ACTIVATE, WA_ACTIVE, 0);
    ::SetFocus(CPublic::g_button_hwnd);
    
    // 发送WM_SETFOCUS消息
    ::PostMessage(CPublic::g_hwnd, WM_SETFOCUS, 0, 0);
    
    // 发送WM_ENABLE消息
    ::PostMessage(CPublic::g_hwnd, WM_ENABLE, 1, 0);
    
    // 发送WM_KEYDOWN消息
    ::PostMessage(CPublic::g_hwnd, WM_KEYDOWN, VK_RETURN, 0);
    
    希望以上信息能够帮助您解决问题。如果您仍有疑问,请提供更多详细信息,以便更好地理解问题并提供更准确的解决方案。
    

    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 修改了问题 4月10日
  • 创建了问题 4月10日

悬赏问题

  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动