khaccuong > 15-12-12, 10:38 PM
Minh Tiên > 11-05-13, 12:40 PM
bomnhauag > 11-05-13, 01:02 PM
(11-05-13, 12:40 PM)tmtien261 Đã viết: Bác NoName ơi !
Tôi đã áp dụng Msgbox tiếng Việt của Bác chạy rất OK. Nhưng hiện nay không biết khai báo lỗi hay con Vi cái Rus nó cắn cai gì của máy mà ko hiển thị trọn vẹn Tiếng Việt trong msgbox được. Một số chữ thì OK, một số chữ thì No OK như: Các chữ đ, ợ ... không hiển thị được.
Bác Noname hay các Pro nào gặp trường hợp này chỉ giúp tmtien cách khắc phục với !
Cảm ơn nhiều !
Minh Tiên > 12-05-13, 10:31 AM
(11-05-13, 01:02 PM)bomnhauag Đã viết: Theo Bợm nghĩ, có thể khi bạn gõ nội dung Message đã chỉnh Unicode tổ hợp trong bộ gõ rồi, chỉnh sang Unicode dựng sẵn và gõ lại thử xem sao nhé!
Thân!
paulsteigel > 13-05-13, 09:27 AM
Option Explicit
' Hàm này để lấy tham chiếu hộp thoại MsgBox của Hệ thống
Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
' Hàm này để thiết lập tiếng việt cho hộp thoại
Private Declare Function SetDlgItemText Lib "user32" _
Alias "SetDlgItemTextW" _
(ByVal hDlg As Long, _
ByVal nIDDlgItem As Long, _
ByVal lpString As String) As Long
' Hàm này để móc vào hàm hệ thống
Private 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
' Hàm này bỏ chế độ câu móc hàm hệ thống
Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
' Handle to the Hook procedure
Private hHook As Long
' Hook type
Private Const WH_CBT = 5
Private Const HCBT_ACTIVATE = 5
' Constants
Public Const IDOK = 1
Public Const IDCANCEL = 2
Public Const IDABORT = 3
Public Const IDRETRY = 4
Public Const IDIGNORE = 5
Public Const IDYES = 6
Public Const IDNO = 7
' Modify this code for English
Private StrYes As String
Private StrNo As String
Private StrOK As String
Private StrCancel As String
' Application title
Private Const xApp_Title = "SEDP Manager"
Function MsgBox(MessageTxt As String, Optional msgStyle As VbMsgBoxStyle) As VbMsgBoxResult
Beep
Dim iVal As VbMsgBoxStyle, msgBoxIcon As MsoAlertIconType, msgButton As MsoAlertButtonType
iVal = msgStyle
Select Case msgStyle
Case 20, 19, 17, 16: ' Critical case
iVal = iVal - 16
msgBoxIcon = msoAlertIconCritical
Case 36, 35, 33, 32: ' Question case
iVal = iVal - 32
msgBoxIcon = msoAlertIconQuery
Case 52, 51, 49, 48: ' Exclamation case
iVal = iVal - 48
msgBoxIcon = msoAlertIconWarning
Case 68, 67, 65, 64: ' Information case
iVal = iVal - 64
msgBoxIcon = msoAlertIconInfo
End Select
Select Case iVal
Case 4:
msgButton = msoAlertButtonYesNo
Case 3:
msgButton = msoAlertButtonYesNoCancel
Case 1:
msgButton = msoAlertButtonOKCancel
Case 0:
msgButton = msoAlertButtonOK
End Select
' Set Hook
hHook = SetWindowsHookEx(WH_CBT, AddressOf MsgBoxHookProc, 0, GetCurrentThreadId)
' Hien thi thong diep...
MsgBox = Application.Assistant.DoAlert(App_Title, MessageTxt, msgButton, msgBoxIcon, msoAlertDefaultFirst, msoAlertCancelDefault, True)
End Function
Private Function MsgBoxHookProc(ByVal lMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If lMsg = HCBT_ACTIVATE Then
' Sua cac thong diep tren nut bam (nut Yes, No, OK, Cancel....
StrYes = "&C" & ChrW(243)
StrNo = "&Kh" & ChrW(244) & "ng"
'StrOK = ChrW(272) & ChrW(7891) & "&ng " & ChrW(253)
StrOK = "Ch" & ChrW(7845) & "p nh" & ChrW(7853) & "&n"
StrCancel = "&H" & ChrW(7911) & "y"
'//// Cau vao he thong de dua gia tri tieng Viet
SetDlgItemText wParam, IDYES, StrConv(StrYes, vbUnicode)
SetDlgItemText wParam, IDNO, StrConv(StrNo, vbUnicode)
SetDlgItemText wParam, IDCANCEL, StrConv(StrCancel, vbUnicode)
SetDlgItemText wParam, IDOK, StrConv(StrOK, vbUnicode)
' Release the Hook
UnhookWindowsHookEx hHook
End If
MsgBoxHookProc = False
End Function
changkhoonline77 > 16-08-14, 10:23 AM
Minh Tiên > 16-08-14, 12:45 PM
changkhoonline77 > 16-08-14, 06:24 PM
hanyoungmine > 17-08-14, 09:58 PM
tranthanhan1962 > 30-10-14, 05:08 PM