Dr.Toms 2023-10-23 13:18 采纳率: 50%
浏览 14
已结题

在使用MFC时,调用了CTestDlg的对象,想要设置按钮的文本从“打开(O)”改为”OK“,但是运行exe会提示如下图,这是为什么?

在使用MFC时,调用了CTestDlg的对象,想要设置按钮的文本从“打开(O)”改为”OK“,但是运行exe会提示如下图,这是为什么?

img

img

img


void CTestDlg::OnBnClickedOpenbtn()
{
    // TODO: 在此添加控件通知处理程序代码
    CString fileName1;

    // 文件过滤器
    CFileDialog dlg(TRUE, NULL, L"*.*", OFN_FILEMUSTEXIST,
        L"Audio(*.wav)|*.wav|"
        L"Audio(*.mp3)|*.mp3|"
        L"video(*.mp4)|*.mp4|"
        L"ALL(*.*)|*.*||"
    );

    dlg.m_ofn.lpstrTitle = _T("Select media file");
    dlg.SetControlText(IDOK, _T("ok"));


    if (dlg.DoModal() == IDOK)
    {
        fileName1 = dlg.GetPathName();
        m_Player.put_URL(fileName1);
        KillTimer(1);
    }
    else
    {
        return;
    }
    m_media = static_cast<CWMPMedia3>(m_Player.newMedia(fileName1));
    m_progress.SetRange(0, (int)m_media.get_duration()); // 媒体总长度  
    m_progress.SetPos(0);
}

  • 写回答

15条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-10-23 15:25
    关注
    获得0.45元问题酬金

    引自强大而免费的微信小程序:皆我百晓生

    在调用dlg.SetControlText(IDOK, _T("ok"));设置按钮文本时,是不合法的操作。因为CFileDialog中的按钮ID不是IDOK,而是IDC_OPENFILE。所以应该修改为dlg.SetControlText(IDC_OPENFILE, _T("ok"));

    另外,

    • 检查按钮的ID是否正确。确保ID为IDC_OPENBTN的按钮存在。
    • 检查对话框资源中的按钮定义,确保按钮类型为“Button”且样式为“BS_PUSHBUTTON”。
      还需要注意的是,设置按钮文本的语言应该与系统语言对应。
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月31日
  • 赞助了问题酬金15元 10月23日
  • 创建了问题 10月23日

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证