AnNguyen > 25-09-23, 09:18 AM
Private Declare PtrSafe Function GetActiveWindow Lib "user32" () As Long
Private Declare PtrSafe Function MessageBoxW Lib "user32" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Function MsgBoxUni(ByVal PromptUni As String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal TitleUni As String = vbNullString) As VbMsgBoxResult
Dim BStrMsg, BStrTitle
BStrMsg = StrConv(UniConvert(PromptUni, "Telex"), vbUnicode)
MsgBoxUni = MessageBoxW(GetActiveWindow, BStrMsg, BStrTitle, Buttons)
End Function
danhxetnghiem > 25-09-23, 11:11 AM
(25-09-23, 09:18 AM)AnNguyen Đã viết: Em gặp phải 1 vấn đề lỗi font chữ mà chưa thể khắc phục được. Máy cài win10 pro, office 2019 plus.Cài lại win thôi. chứ vấn đền mình nghĩ không phải nằm ở office
dùng đến hơn chục máy không vấn đề gì những riêng có 1 cái máy này thì em không hiểu sao? mặc dù em đã cài lại cả office cho nó mà vẫn bị lỗi font.
Em sử dụng kiểu convert chữ unicode ("aa" -> "â", "looxi" -> "Lỗi") sử dụng
Em sử dụng code sau để hiển thị Messagebox Tiếng Việt. Nhưng lạ 1 chỗ là đến trên form cũng bị lỗi chứ không phải riêng messagebox ạ.
Mã:Private Declare PtrSafe Function GetActiveWindow Lib "user32" () As Long
Private Declare PtrSafe Function MessageBoxW Lib "user32" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Function MsgBoxUni(ByVal PromptUni As String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal TitleUni As String = vbNullString) As VbMsgBoxResult
Dim BStrMsg, BStrTitle
BStrMsg = StrConv(UniConvert(PromptUni, "Telex"), vbUnicode)
MsgBoxUni = MessageBoxW(GetActiveWindow, BStrMsg, BStrTitle, Buttons)
End Function
Em cảm ơn ạ!
ongke0711 > 25-09-23, 11:56 AM
#If VBA7 Then
Public Declare PtrSafe Function MessageBoxW Lib "user32" _
(ByVal hwnd As LongPtr, _
ByVal lpText As LongPtr, _
ByVal lpCaption As LongPtr, _
ByVal wType As Long) As Long
#Else
Public Declare Function MessageBoxW Lib "user32" _
(ByVal hwnd As Long, _
ByVal lpText As Long, _
ByVal lpCaption As Long, _
ByVal wType As Long) As Long
#End If
Public Function msgBoxUni(ByVal sMsgUni As String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal sTitleUni As String = vbNullString) As VbMsgBoxResult
msgBoxUni = MessageBoxW(0, StrPtr(sMsgUni), StrPtr(sTitleUni), Buttons)
End Function