• 个人简介

    入门\textsf{\textbf{\textcolor{FE4C61}{入门}}}

    普及-\textsf{\textbf{\textcolor{F39C11}{普及-}}}

    普及\textsf{\textbf{\textcolor{FFC116}{普及}}}

    普及+/提高-\textsf{\textbf{\textcolor{52C41A}{普及+/提高-}}}

    提高\textsf{\textbf{\textcolor{13C2C2}{提高}}}

    提高+/省选-\textsf{\textbf{\textcolor{3498DB}{提高+/省选-}}}

    省选/NOI-\textsf{\textbf{\textcolor{9C3DCF}{省选/NOI-}}}

    NOI/NOI+/CTS\textsf{\textbf{\textcolor{0E1D69}{NOI/NOI+/CTS}}}

    #include <windows.h>
    #include <tchar.h>
    
     //全局钩子句柄
    HHOOK hHook = NULL;
    
    // 钩子回调函数
    LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam) {
        if (nCode == HCBT_ACTIVATE) {
            // wParam 是消息框的窗口句柄
            HWND hMsgBox = (HWND)wParam;
    
            // 修改按钮文本
            // IDOK = 1, IDCANCEL = 2, IDYES = 6, IDNO = 7 等
            SetDlgItemText(hMsgBox, IDOK, TEXT("好的"));
            SetDlgItemText(hMsgBox, IDCANCEL, TEXT("可以"));
            
            // 如果有 YES/NO 按钮,也可以修改
            // SetDlgItemText(hMsgBox, IDYES, TEXT("同意"));
            // SetDlgItemText(hMsgBox, IDNO, TEXT("拒绝"));
    
            // 修改完成后立即卸载钩子
            UnhookWindowsHookEx(hHook);
            hHook = NULL;
        }
        return CallNextHookEx(NULL, nCode, wParam, lParam);
    }
    
    // 封装自定义 MessageBox 函数
    int CustomMessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType) {
        // 安装钩子,只监视当前线程
        hHook = SetWindowsHookEx(WH_CBT, CBTProc, NULL, GetCurrentThreadId());
        
        // 弹出标准消息框
        int result = MessageBox(hWnd, lpText, lpCaption, uType);
        
        // 确保钩子已卸载(防止异常情况下未进入回调)
        if (hHook != NULL) {
            UnhookWindowsHookEx(hHook);
            hHook = NULL;
        }
        
        return result;
    }
    
    // 使用示例
    int main() {
        // 需要包含 MB_OKCANCEL 等标志才能看到对应的按钮
        while(1)CustomMessageBox(NULL, TEXT("继续显示"), TEXT("提示"), MB_OKCANCEL);
    
        return 0;
    }
    
    
  • 通过的题目

  • 最近活动

  • 最近编写的题解

题目标签

循环
1
入门
1
省赛
1
二分
1