美文网首页
Windows下更改MessageBox按钮文本内容

Windows下更改MessageBox按钮文本内容

作者: BrokenRainK | 来源:发表于2019-05-30 18:32 被阅读0次

在实际开发中,我们可能会碰到需要修改Windows系统下的MessageBox弹窗中按钮的文本内容,本文将介绍一种修改MessageBox弹窗中按钮内容的方法。

定义我们自己的弹窗方法MyMessageBox

LRESULT CALLBACK CBHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    HWND hwnd = (HWND)wParam;
    if (nCode == HCBT_ACTIVATE)
    {
        SetDlgItemText(hwnd, IDYES, L"按钮内容");
        SetDlgItemText(hwnd, IDNO, L"按钮内容");
        ...//可根据自己需求修改其他按钮
    }
    return 0;
}
int MyMessageBox(HWND hwnd, TCHAR *szText, TCHAR *szCaption, UINT uType)
{
    int ret;
    HHOOK hHook = SetWindowsHookEx(WH_CBT, CBHookProc, nullptr, GetCurrentThreadId());
    ret = MessageBoxEx(hwnd, szText, szCaption, uType, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
    UnhookWindowsHookEx(hHook);
    return ret;
}

使用MyMessageBox

MyMessageBox(MainFrameHwnd, _T("内容"), _T("标题"), MB_YESNO);

效果图


效果图.png

相关文章

网友评论

      本文标题:Windows下更改MessageBox按钮文本内容

      本文链接:https://www.haomeiwen.com/subject/vgfbtctx.html