'
' =======================================
' FASADO. Provo uzi kodoprezenton UTF-8
' =======================================
'
uses "UI"
declare function SendMessageW lib "user32.dll" _
alias "SendMessageW" _
(ByVal t as DWord, ByVal m as DWord, _
ByVal wp as DWord, ByVal adrL as Long) _
as Long
declare function SetWindowTextW lib "user32.dll" _
alias "SetWindowTextW" _
(ByVal t as DWord, ByVal adrL as Long) _
as Long
declare function MessageBoxW lib "user32.dll" _
alias "MessageBoxW" _
(ByVal t as DWord, ByVal adrLt as Long, _
ByVal adrLcx as Long, ByVal n as DWord) _
as Long
Begin ControlID
%butEn
%butEo
%butRu
%butFa
%butKr
%butYi
%butAr
%butHi
%butJa
%knvP
End ControlID
%UTF8 = 65001
%DlgL = 600
%DlgAt = 300
%DlgA = 400
%CxL = %DlgL \ 3
%CxA = %DlgAt \ 3
%d = 10
%bL = %CxL - %d - %d
%bA = %CxA - %d - %d
%LtrA = 12
$Ttl = "Unicode-text buttons; each changes the colour of the canvas below."
$nButEn = "Well... Close!"
$LtrN = "Arial Unicode MS"
dim DlgH, DlgV, r as Long
dim tDlg, _
tButEo, tButRu, tButFa, tButKr, tButYi, tButAr, tButHi, tButJa, tKnv _
as DWord
dim nButEo, nButRu, nButFa, nButKr, nButYi, nButAr, nButHi, nButJa, _
mFaCx, mFaT _
as AsciiZ
' ================
' CXEFA PROGRAMO
' ================
FUNCTION TbMain()
nButEo = "Ŝanĝiĝu... Ĝis!"
nButRu = "Что ж, закроем!"
nButFa = "!ﺪﯿﻨﻜﺑ ﻪﺘﺴﺑ"
nButKr = "창문을 닫기!"
nButYi = "!ןכאַמוצ רעטצנעפֿ"
nButAr = "Պատուհան փակել"
nButHi = "खिड़की बंद करे ।"
nButJa = "まど を 閉じる。"
mFaCx = UTF8ToWideChar$("Ĉapo de mesaĝ-panelo:")
mFaT = UTF8ToWideChar$(nButRu & $CRLF & nButFa)
desktop get client to DlgH, DlgV
DlgH = (DlgH - %DlgL) \ 2: DlgV = (DlgV - %DlgA) \ 2
dialog font $LtrN, %LtrA
tDlg = Dialog_New (Pixels, 0, $Ttl, _
DlgH, DlgV, %DlgL, %DlgA, _
%WS_DLGFRAME | _
%WS_CAPTION | _
%WS_SYSMENU | _
%WS_OVERLAPPEDWINDOW , 0)
dialog set client tDlg, %DlgL, %DlgA
control add button, tDlg, %butEn, $nButEn, %d, %d, %bL, %bA
control add button, tDlg, %butEo, $SPC, %d+%CxL, %d, %bL, %bA
control handle tDlg, %butEo to tButEo
nButEo = UTF8ToWideChar$(nButEo)
SendMessageW (tButEo, 12, 0, strptr(nButEo))
control add button, tDlg, %butRu, $SPC, %d+%CxL+%CxL, %d, %bL, %bA
control handle tDlg, %butRu to tButRu
nButRu = UTF8ToWideChar$(nButRu)
SendMessageW (tButRu, 12, 0, strptr(nButRu))
control add button, tDlg, %butFa, $SPC, %d, %d+%CxA, %bL, %bA
control handle tDlg, %butFa to tButFa
nButFa = UTF8ToWideChar$(nButFa)
' SendMessageW (tButFa, 12, 0, strptr(nButFa))
SetWindowTextW (tButFa, strptr(nButFa))
control add button, tDlg, %butKr, $SPC, %d+%CxL, %d+%CxA, %bL, %bA
control handle tDlg, %butKr to tButKr
nButKr = UTF8ToWideChar$(nButKr)
SendMessageW (tButKr, 12, 0, strptr(nButKr))
control add button, tDlg, %butYi, $SPC, %d+%CxL+%CxL, %d+%CxA, %bL, %bA
control handle tDlg, %butYi to tButYi
nButYi = UTF8ToWideChar$(nButYi)
SendMessageW (tButYi, 12, 0, strptr(nButYi))
control add button, tDlg, %butAr, $SPC, %d, %d+%CxA+%CxA, %bL, %bA
control handle tDlg, %butAr to tButAr
nButAr = UTF8ToWideChar$(nButAr)
SendMessageW (tButAr, 12, 0, strptr(nButAr))
control add button, tDlg, %butHi, $SPC, %d+%CxL, %d+%CxA+%CxA, %bL, %bA
control handle tDlg, %butHi to tButHi
nButHi = UTF8ToWideChar$(nButHi)
SendMessageW (tButHi, 12, 0, strptr(nButHi))
control add button, tDlg, %butJa, $SPC, %d+%CxL+%CxL, %d+%CxA+%CxA, %bL, %bA
control handle tDlg, %butJa to tButJa
nButJa = UTF8ToWideChar$(nButJa)
SendMessageW (tButJa, 12, 0, strptr(nButJa))
tKnv = control add canvas, tDlg, %knvP, "", _
%d, %d+%CxA+%CxA+%CxA, %DlgL - %d - %d, %bA, , %WS_EX_STATICEDGE
Canvas_Attach (tDlg, %knvP, %FALSE)
Canvas_Clear (%RGB_BLACK)
dialog show modal tDlg, call trFENESTRO
END FUNCTION
' =========================
' PROCEDUROJ KAJ FUNKCIOJ
' =========================
Callback Function trFENESTRO() as Long
SELECT CASE cbMsg
CASE %WM_COMMAND
select case cbCtl
case %butEn
if cbCtlMsg = %BN_CLICKED then Canvas_Clear (%RGB_BLUE)
case %butEo
if cbCtlMsg = %BN_CLICKED then Canvas_Clear (%RGB_RED)
case %butRu
if cbCtlMsg = %BN_CLICKED then
Canvas_Clear (%RGB_GREEN)
MsgBox (tDlg, "=m=", %MB_OK, "=t=")
end if
case %butFa
if cbCtlMsg = %BN_CLICKED then
Canvas_Clear (%RGB_CYAN)
MessageBoxW (tDlg, strptr(mFaT), strptr(mFaCx), %MB_OK)
end if
case %butKr
if cbCtlMsg = %BN_CLICKED then Canvas_Clear (%RGB_MAGENTA)
case %butYi
if cbCtlMsg = %BN_CLICKED then Canvas_Clear (%RGB_YELLOW)
case %butAr
if cbCtlMsg = %BN_CLICKED then Canvas_Clear (%RGB_BROWN)
case %butHi
if cbCtlMsg = %BN_CLICKED then Canvas_Clear (%RGB_GRAY)
case %butJa
if cbCtlMsg = %BN_CLICKED then Canvas_Clear (%RGB_POWDERBLUE)
end select
END SELECT
End Function
Ĝis // Regards,
Bookmarks