if( MessageBox(TEXT("sure?"),TEXT("Unistall"),MB_YESNO) !=IDYES )
{
return;
}弹出的对话框 是汉语的是(Y) 否(N)
有什莫办法让这个“是”和“否”变成英语?
谢谢

解决方案 »

  1.   


    HHOOK hMsgBoxHook=NULL;
    LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
    HWND hwnd, hndx;
    if(nCode < 0)
    return CallNextHookEx(hMsgBoxHook, nCode, wParam, lParam);
    switch(nCode)
    {
    case HCBT_ACTIVATE:
    // 现在wParam中就是message box的句柄
    hwnd = (HWND)wParam;
    // 有了message box的句柄,定制message box
    hndx = GetWindow(hwnd, GW_CHILD);
    ::SetWindowText(hndx, "OK");
    //while(hndx != NULL)
    //{
    // hndx = GetWindow(hndx, GW_HWNDNEXT);
    // ::SetWindowText(hndx, "无敌了");
    //} //SetWindowLong(hwnd,DWL_DLGPROC,(LONG)AboutDlgProc);
    return 0;
    }
    return CallNextHookEx(hMsgBoxHook, nCode, wParam, lParam);
    }
    int MsgBoxEx(HWND hwnd, TCHAR *szText, TCHAR *szCaption, UINT uType)
    {
    int ret;
    hMsgBoxHook= SetWindowsHookEx(
    WH_CBT,
    CBTProc,
    NULL,
    GetCurrentThreadId()
    );
    ret = ::MessageBox(hwnd, szText, szCaption, uType);
    UnhookWindowsHookEx(hMsgBoxHook);
    hMsgBoxHook = NULL;
    return ret;
    }
      

  2.   


    hndx = GetWindow(hwnd, GW_CHILD);
    ::SetWindowText(hndx, _T("YES") );
    HWND hWnd = ::GetNextWindow(hndx,GW_HWNDNEXT);
    ::SetWindowText(hWnd, _T("NO") );楼上的学习了。。