Asiatische Zeichen auf einen Button



  • Hallo Allerseits! 🙂

    Weiß zufällig jemand von euch ob es möglich ist, einem
    MFC Control (z.b. einem Button) auch japanische Zeichen
    bzw. Texte zu zuweisen? Wenn ich mit SetWindowText einen
    japanischen Text auf den Button lege, ist er später in
    der Application leer. Wißt ihr warum das so ist?

    Gruß Jimmy 🙂



  • Hi,
    woher bekommst du eigentlich das Zeichen? Ist nen Unicodezeichen, würde ich mal denken, aber wo finde ich den die??? Würde mich über nen Tip freuen.
    Mfg CLoop



  • Kann doch auch Hexdezimal oder Oktal sein, oder? 😕



  • Die Zeichen lade ich aus einer Textdatei die ich vorher mit Word geschrieben habe und als UTF8 abspeichere. (Font: Ms Gothic)



  • Ich glaube du musst den Richtigen Font bei den Programm selber auswählen. Du hast doch sicherlich irgendwo die Möglichkeit deine Schriftart zu ändern oder?



  • Ja klar, das habe ich auch alles probiert....leider klappt es so auch nicht. Es liegt also nicht am Font, ich denke viel mehr das die MFC damit nicht fertig wird und das nur RichTextBoxen asiatische Zeichen unterstützen und keines der anderen MFC Controls. 😞



  • Kämpfe zur Zeit mit ähnlichem Problem:
    Also bei Buttons ist das recht einfach: Der Font muß erst mal auch z.B. Chinesisch können! Dann sollten die entsprechenden Tastaturtreiber installiert sein - macht man von Gebietsschema aus (Win2k) - und dann muß man noch das richtige charset angeben... Findet man unter Font. Meistens steht da DEFAULT_CHARSET. Für Chinesisch brauchtman z.B. CHINESEBIG5_CHARSET.
    Blos wie es in den Menüs und Titelleisten geht weiß ich noch nicht.



  • Was ich grad geschrieben habe gilt für den BCB5. Weiß nicht wie es bei anderen Compilern aussieht.



  • Heyho
    mein Problem: Statt den gewünschten Text (deutsch), bekomme ich chinesische/japanische Symbole im Fensterkopf und im fenster....!
    Hat jemand einen Lösungsvorschlag?
    vielen Dank

    hier der code:
    [cpp]/* Windows-Skelett-Programm (winskel.c)
    ==================================== /
    #include <windows.h>
    LONG FAR PASCAL WndProc (HWND , UINT , UINT , LONG) ;
    int PASCAL WinMain (HANDLE hInstance , HANDLE hPrevInstance ,
    LPSTR lpszCmdParam , int nCmdShow)
    {
    MSG msg ;
    HWND hwnd ;
    WNDCLASS wndclass ;
    if (!hPrevInstance)
    {
    wndclass.style = CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc = WndProc ;
    wndclass.cbClsExtra = 0 ;
    wndclass.cbWndExtra = 0 ;
    wndclass.hInstance = hInstance ;
    wndclass.hIcon = LoadIcon (NULL , IDI_APPLICATION) ;
    wndclass.hCursor = LoadCursor (NULL , IDC_ARROW) ;
    wndclass.hbrBackground = GetStockObject (LTGRAY_BRUSH) ;
    wndclass.lpszMenuName = NULL ;
    wndclass.lpszClassName = "WndClassName" ;
    RegisterClass (&wndclass) ;
    }
    hwnd = CreateWindow ("WndClassName" , "Programm HLLWINW" ,
    WS_OVERLAPPEDWINDOW , CW_USEDEFAULT ,
    CW_USEDEFAULT , CW_USEDEFAULT , CW_USEDEFAULT ,
    NULL , NULL , hInstance , NULL) ;
    ShowWindow (hwnd , nCmdShow) ;
    UpdateWindow (hwnd) ;
    while (GetMessage (&msg , NULL , 0 , 0))
    {
    TranslateMessage (&msg) ;
    DispatchMessage (&msg) ;
    }
    return msg.wParam ;
    }
    LONG FAR PASCAL WndProc (HWND hwnd , UINT message ,
    UINT wParam , LONG lParam)
    {
    HDC hdc ; /
    ... ist ein "Handle of Device Context" /
    PAINTSTRUCT ps ; /
    ... ist eine Struktur mit allen Informationen,
    die Windows fuer das Zeichnen in einem
    Fenster auswertet /
    RECT rect ; /
    ... fuer die Aufnahme der Abmessungen der
    Zeichenflaeche /
    switch (message)
    {
    case WM_PAINT: /
    ... wird u. a. von UpdateWindow oder beim Aendern
    der Fenstergroesse erzeugt, Fensterinhalt wird
    neu gezeichnet, eine Zeichenaktion sollte immer
    von BeginPaint und EndPaint umschlossen sein: */
    hdc = BeginPaint (hwnd , &ps) ;
    /* ... liefert "Handle of Device Context" und die
    zugehoerigen PaintStruktur-Informationen,
    loescht ausserdem den Fensterinhalt durch
    Ueberzeichnen mit dem durch den hbrBackground-
    Parameter der Fensterklasse festgelegten
    Muster (in winskel.c: LTGRAY_BRUSH) */
    GetClientRect (hwnd , &rect) ;
    /* ... liefert die "Netto"-Abmessungen des Fensters */
    DrawText (hdc , " Hello, Winworld! " , -1 , &rect ,
    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
    /* ... schreibt einen durch die ASCII-Null
    abgeschlossenen Text (gekennzeichnet durch
    die -1) in ein Rechteck des durch Device Context
    definierten Geraets, der einzeilige Text wird
    im Rechteck horizontal und vertikal zentriert */
    EndPaint (hwnd , &ps) ;
    /* ... raeumt auf und gibt Device Context frei */
    return 0 ;
    case WM_DESTROY:
    PostQuitMessage (0) ;
    return 0 ;
    }
    return DefWindowProc (hwnd , message , wParam , lParam) ;
    }


Anmelden zum Antworten