msgbox的语言显示问题,再线等,多分·!

wxf0204 2005-12-22 03:36:45
请问:我如何让下面的语句在中文系统的平台显示'OK'和‘Cancel'而不是‘确定’与‘取消’
Msgbox "Are you sure you want to delete this item?",vbinformation,"Information"

在完成程序,运行时却显示中文的‘确定'与‘取消’,请各位高手帮忙解决一下
...全文
440 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxf0204 2005-12-26
  • 打赏
  • 举报
回复
呵呵,我的软件本来就是英文版本的,只是操作系统是中文的!

另外想再问一下, 我们用NOW的时候可以显示的时间是秒,要怎么样才能显示到毫秒呢
ilove8 2005-12-26
  • 打赏
  • 举报
回复
最好 英文版本vb 和 英文操作系统 会好一些
不然在客户那里出现中文或乱码,那就不太好了...
wxf0204 2005-12-26
  • 打赏
  • 举报
回复
哎,是啊,肯定和系统语言有关,所以我现在也不管了!到了客户手上再说吧!

另外想再问一下, 我们用NOW的时候可以显示的时间是秒,要怎么样才能显示到毫秒呢?
wzzwwz 2005-12-25
  • 打赏
  • 举报
回复
这个跟系统语言有关
rainnygo 2005-12-25
  • 打赏
  • 举报
回复
同意楼上的!
zou19820704 2005-12-23
  • 打赏
  • 举报
回复
我想一定要在英文操作系统下写,要不或许还要出现什么问题呢
coyihisaso 2005-12-23
  • 打赏
  • 举报
回复
是开发平台换成英文版吧,系统换成英文版...也对哦dll文件是需要英文版的
generalj 2005-12-23
  • 打赏
  • 举报
回复
还是楼主自己想通了.
wxf0204 2005-12-23
  • 打赏
  • 举报
回复
主要是我做的这个软件需要在国外使用, 客户一定要英文版本的!、
是不是我操作系统换成了英文后,就会好了?
windy731 2005-12-23
  • 打赏
  • 举报
回复
我以前有过这样的需求,不过没找到办法,最后我是用一个窗体代替的,这样一来在窗体上的按钮你想让它显示什么就显示什么了.土了点,但很实用.呵呵!~~~~
nofound007 2005-12-22
  • 打赏
  • 举报
回复
何必这么复杂啊,自己写一个不就得了……
这么简单的东西……
chenwei0719 2005-12-22
  • 打赏
  • 举报
回复
有好多裤衩的人都说简单!我怎么感觉不到啊!~
Mars.CN 2005-12-22
  • 打赏
  • 举报
回复
简单的,自己做一个不就行了
benqmm 2005-12-22
  • 打赏
  • 举报
回复
呵呵,楼上,8错
northwolves 2005-12-22
  • 打赏
  • 举报
回复
如果你不嫌麻烦的话:

FORM1:

Private Sub Command1_Click()
Call EnableHook
MsgBoxTitle = "Information"
MsgBox "Are you sure you want to delete this item?", vbInformation + vbOKCancel, MsgBoxTitle
Call FreeHook
End Sub


BAS:
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lparam As Any) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lparam As Long) As Long
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Public Const HCBT_ACTIVATE = 5
Public Const WH_CBT = 5

Public hHook As Long
Public MsgBoxTitle As String

Public Sub EnableHook()
If hHook = 0 Then
hHook = SetWindowsHookEx(WH_CBT, AddressOf HookProc, 0, App.ThreadID)
End If
End Sub
Public Sub FreeHook()
If hHook <> 0 Then
Call UnhookWindowsHookEx(hHook)
hHook = 0
End If
End Sub

Public Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lparam As Long) As Long
If nCode < 0 Then
HookProc = CallNextHookEx(hHook, nCode, wParam, lparam)
Exit Function
End If
'当MsgBox Activate之前去更改Button的标题
If nCode = HCBT_ACTIVATE Then
Dim str5 As String
Dim len5 As Long, i As Long
str5 = String(255, 0)
len5 = 256
i = GetWindowText(wParam, str5, len5)
str5 = Left(str5, InStr(1, str5, Chr(0)) - 1)
'如果Active Window上的标题是MsgBox上的标题
'
If str5 = MsgBoxTitle Then
'取得MsgBox上的所有子window
Call EnumChildWindows(wParam, AddressOf ChgButtonTitle, 0)
End If
End If
HookProc = 0 '令待完成的动作继续完成,若为1,则取消原本要完成的动作
End Function

Private Function ChgButtonTitle(ByVal hwnd As Long, ByVal lparam As Long) As Long
Dim clsName As String, len5 As Long, i As Long
Dim Title As String
If hwnd = 0 Then
ChgButtonTitle = 0
Exit Function
End If
clsName = String(255, 0)
len5 = 256
i = GetClassName(hwnd, clsName, 256)
clsName = Left(clsName, InStr(1, clsName, Chr(0)) - 1)
Title = String(255, 0)
i = GetWindowText(hwnd, Title, 256)
Title = Left(Title, InStr(1, Title, Chr(0)) - 1)
'找到Button型态的子Window,并更改其上的标题
If clsName = "Button" Then
If Title = "确定" Then
Call SetWindowText(hwnd, "Ok")
Else
If Title = "取消" Then
Call SetWindowText(hwnd, "Cancel")
End If
End If
End If
ChgButtonTitle = 1 '表示继续找下一个子Window
End Function



HungryBoy 2005-12-22
  • 打赏
  • 举报
回复
你的操作系统是中文版的阿!
bbhere 2005-12-22
  • 打赏
  • 举报
回复
同一楼上
自己做一个也不麻烦
lv1 2005-12-22
  • 打赏
  • 举报
回复
自己做一个吧,反正很简单的,在一个form中加两个button而已,别说是英文,你放爪哇文都可以啊
bestupid 2005-12-22
  • 打赏
  • 举报
回复
参考一下《教你如何控制Msgbox对话框的字体、显示位置及在固定时间内自动关闭》
http://www.vb99.com/code.asp?codetype=0&findmode=2
要是还不行的话你也可用其它方法变通一下下.
Snoworld 2005-12-22
  • 打赏
  • 举报
回复
晕,中国人用国语啊.
加载更多回复(4)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧