topguntoo 2023-02-25 18:19 采纳率: 44.4%
浏览 79
已结题

MFC 按钮图片按指定图片显示 球助!

IDB_BITMAP1是 “未按下”图片
IDB_BITMAP2是 “被按下”图片
添加了个按钮 Button1 我要做到的功能是 按钮默认是显示“未按下”图片,当按下按钮后通过串口发送一个 联机的信号,收到确认回复后 显示“被按下”图片
我目前是这样做的
按钮添加了变量 CBmpButton m_btn1;


运行后是显示的 “未按下”图片,按下按钮后通过串口发送一个 联机的信号,收到确认回复后 ,
执行了


出现的问题是 按钮图片没有刷新显示成“被按下”图片,而是点击对话框其他按钮后 Button1 的图片才被刷新为“被按下”图片 求指点下简单好实现的方法。!谢谢!

  • 写回答

6条回答 默认 最新

  • MarkHan_ 2023-02-25 19:13
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    您可以使用按钮的 SetBitmap() 函数来设置按钮的图片,例如:

    m_btn1.SetBitmap(IDB_BITMAP2);
    

    这将把按钮的图片设置为 IDB_BITMAP2,即“被按下”图片。

    如果您的按钮在按下后没有立即刷新显示为“被按下”图片,您可以尝试调用按钮的 RedrawWindow() 函数来强制重绘按钮,例如:

    m_btn1.SetBitmap(IDB_BITMAP2);
    m_btn1.RedrawWindow();
    

    这将立即重绘按钮,以便它显示为“被按下”图片。

    如果您在执行上述操作后仍然遇到问题,可能是与您的消息循环有关。在收到串口确认回复后,您可以尝试在主窗口的消息循环中添加一条强制重绘按钮的消息,例如:

    // 收到串口确认回复后执行以下代码
    m_btn1.SetBitmap(IDB_BITMAP2);
    PostMessage(WM_PAINT, 0, 0);
    

    这将向主窗口的消息队列中添加一条 WM_PAINT 消息,以便在消息循环中重绘按钮。

    希望这些方法能帮助您解决问题!

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

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 创建了问题 2月25日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装