Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230

    [VB6] scrivere caratteri cinesi

    salve a tutti, spero ci sia qualcuno che sia in grado di aiutarmi!
    ho gia perso troppe ore per questa cosa.
    uso sta api
    newFONT = CreateFont(-MulDiv(10, GetDeviceCaps(CHIAMAID, LOGPIXELSY), 72), 0, 0, 0, FW_NORMAL, False, False, False, CHINESESIMPLIFIED_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, "MS Mincho")

    però quando vado a scrivere, invece di scrivere i caratteri cinesi, mi scrive punti interrogativi....
    ho fatto un ciclo for...next che va da -32000 a 65000
    e mi scrive tutti i caratteri del font ms mincho(oppure batang)
    e li visualizzo con la funzione chrW.
    tutti punti interrogativi...(a parte i caratteri tra 175 e 200)
    allora le ipotesi sono due:
    1-non capisco dove sbaglio
    2-che cazzzo ci mettono a fare le API che poi non funzionano?

    aiuto!!!
    saluti,
    mauro v.
    ======================

  2. #2
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230

    :-)

    allora confermiamo che non lo sa nessuno?

    l'accendiamo?

  3. #3
    Ciao, ti vorrei aiutare ma dal codice che hai esposto non si può verificare dove è l'errore: cosa è "Muldiv"; sei sicuro che vada bene "CHIAMAID" e tutto il resto? Dovresti specificare meglio tutto il codice..ciao

  4. #4
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230

    :-)

    hai ragione, ecco la parte della dichiarazione.
    il resto va bene, ho trovato anche su altri forum di gente che ha il mio stesso problema e nessuno ha saputo risolverlo....
    spero che tu riuscirai dove altri hanno fallito!
    ah dimenticavo....dentro la variabile CHIAMAID cè GetDC(0).
    cioè vado a scrivere sullo schermo; comunque fa la stessa cosa anche se vado a scrivere sul form o su un oggetto del form.

    codice:
    Option Explicit
    Public Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
    Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
    Public Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
    Public Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
    Public Declare Function SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
    Public Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal nHeight As Long, ByVal nWidth As Long, ByVal nEscapement As Long, ByVal nOrientation As Long, ByVal fnWeight As Long, ByVal fdwItalic As Boolean, ByVal fdwUnderline As Boolean, ByVal fdwStrikeOut As Boolean, ByVal fdwCharSet As Long, ByVal fdwOutputPrecision As Long, ByVal fdwClipPrecision As Long, ByVal fdwQuality As Long, ByVal fdwPitchAndFamily As Long, ByVal lpszFace As String) As Long
    Public Declare Function MulDiv Lib "kernel32" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long
    Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
    Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
    Public Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
    Public Declare Function GetForegroundWindow Lib "user32.dll" () As Long
    Public Type RECT
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End Type
    Public MSG As String, KEW As RECT, oldFONT As Long, newFONT As Long
    Public D As Byte, M As Byte, C As Long, B As Long, V As Integer, S As String
    Public Const OUT_DEFAULT_PRECIS = 0
    Public Const FW_NORMAL = 400
    Public Const FW_BOLD = 700
    Public Const FW_HEAVY = 900
    Public Const FW_EXTRABOLD = 800
    Public Const VK_ESCAPE = &H1B
    Public Const DT_CENTER = &H1
    Public Const CLIP_DEFAULT_PRECIS = 0
    Public Const PROOF_QUALITY = 2
    Public Const DEFAULT_PITCH = 0
    Public Const LOGPIXELSY = 90        '  Pixel/pollice logico in Y
    Public Const DEFAULT_CHARSET = 1
    Public Const SYMBOL_CHARSET = 2
    Public Const SHIFTJIS_CHARSET = 128
    Public Const HANGEUL_CHARSET = 129
    Public Const CHINESEBIG5_CHARSET = 136
    Public Const CHINESESIMPLIFIED_CHARSET = 134
    Public Const LF_FACESIZE = 32

  5. #5
    1. Sei sicuro di avere caricato nel tuo pc il set di caratteri cinesi?
    2. sei sicuro che è tutta delle funzioni API che non funzionano?
    Chi non cerca trova.

  6. #6
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230
    Originariamente inviato da tas
    1. Sei sicuro di avere caricato nel tuo pc il set di caratteri cinesi?
    2. sei sicuro che è tutta delle funzioni API che non funzionano?
    1-sì, sicurissimo, che ho i caratteri cinesi...li vedo su word e anche su i caratteri di sistema...
    2-se non è colpa delle api di chi è la colpa?cecando su internet ho trovato anche altre persone che hanno lo stesso problema....mica avremo sbagliato tutti il codice....anche perchè la guida su quelle api è chiara.......
    boh dimi tu....

  7. #7
    Ciao Mauro,forse non ho capito bene tutto cmq io ti propongo questo codice: ti premetto che non l'ho potuto verificare perchè, avendo perso il cd di win2000, non posso installare il set di caratteri cinesi..

    INSERISCI IN UN MODULO LE SEGUENTI API
    CreateFont
    SelectObject
    DeleteObject
    Public Const CHINESEBIG5_CHARSET = 136

    INSERISCI IN UN FORM IL SEGUENTE CODICE
    dim new_font as Long, old_font as Long
    AutoRedraw = True
    new_font = createfont(200,50,450,450,0,False,False,False,CHIN ESEBIG5_CHARSET, _
    0,0,0,0,"") 'al posto dell'ultimo argomento anche un nome di una
    'lingua che appartiene al set cinese ma penso non sia necessario
    old_font = selectobject(hdc,new_font)
    currentx = 0
    currenty = scaleheight - 1000 * 1.5
    print "ciao"
    selectobject hdc, new_font
    deleteobject new_font
    end sub

    Fammi sapere come va a finire..(il set di caratteri cinesi lo hai già installato vero?..ciao

  8. #8
    Utente di HTML.it L'avatar di mvent
    Registrato dal
    Jun 2002
    Messaggi
    230
    ho provato queste due :

    codice:
    newFONT = CreateFont(200, 50, 450, 450, 0, False, False, False, CHINESEBIG5_CHARSET, 0, 0, 0, 0, "")
    e poi questa
    codice:
    newFONT = CreateFont(200, 50, 450, 450, 0, False, False, False, CHINESEBIG5_CHARSET, 0, 0, 0, 0, "MS Mincho")
    ma non scrive niente....
    con l'api che utilizzo io invece, che ho riportato nel mio post iniziale, mi scrive punti interrogativi...
    riguardo i caratteri cinesi: i caratteri cinesi...li vedo su word e anche su i caratteri di sistema... quindi vuol dire che li ho installati giusto? ce li ho su
    MS Mincho
    Batang
    Arial Unicode MS
    boh, anche facendo ricerche su internet ho trovato di gente che voleva utilizzare caratteri cinesi, giapponesi o cirillici ma anche loro visualizzano punti interrogativi...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.