美文网首页
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