Italia
Foro

Unicode-Zeichen in CreateText

 
- Page 1 -



Julian
Schmidt
Ciao,
ich würde gerne ein Unicode-Zeichen (U+2192) in einem Static ausgeben.
Gibt es da irgendwelche Möglichkeiten?

LG

Julian57
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
02.04.2012  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Page 2 -



Julian
Schmidt
Ok, so funzt alles.
Danke IF. Du warst mir eine grande Aiuto.
 $H Messages.ph
CLS
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
var id% = 1
Var static&=CreateW("Static","Das ist ein Static. \nHier sollen Unicode-Zeichen rein.",$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance)
Waitinput
SetText static&,chr$($2192)
External("USER32","SetWindowTextW",static&,utf("Test ")+chr$($92)+chr$($21)+utf(" Test"))
Waitinput
End

Proc UTF

    parameters text$
    declare b#
    Dim b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

EndProc

Proc CreateW

    If %pCount > 10

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    Else

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        Var exstyle& = 0

    EndIf

    Class$ = UTF(Class$)
    Name$ = UTF(Name$)
    Var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = If(External("USER32","IsMenu",id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    Var handle& = External("USER32","CreateWindowExW",exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    IfNot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:\n\n" + Class$,"F E H L E R !!!",4096)

    EndIf

    Dispose cs#
    Return handle&

EndProc

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
02.04.2012  
 



 
- Page 1 -



Julian
Schmidt
Anscheinend nicht...
CLS
Var class$="Static"
Var title$="Das ist ein Static. \nHier soll nachfolgend ein Unicode-Zeichen rein."
Var static&=External("USER32","CreateWindowExA",0,addr(class$),addr(title$),$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance,10000)
'Var static&=External("USER32","CreateWindowExW",0,addr(class$),addr(title$),$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance,10000)
Waitinput
SetText static&,chr$(2192)
Waitinput
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
02.04.2012  
 



Jo, gibt leider 1 statt 2 aus:
 {$cleq}
print len(chr$(256))
Waitinput

Dann kannst ja z.B. per:
SetText static&,chr$(hibyte($2192))+chr$(lobyte($2192))+"\z\z"
Dein Zeichen ansetzen aber irgendwie fehlt mir in Deinem Beispiel eine unicode-WndProc wie sie Nico vormacht.
 
02.04.2012  
 




Julian
Schmidt
Hi IF,
ich habs nun versucht mit Nico's CreateW umzusetzen.
Er scheint mir nun auch tatsächlich Unicode-Zeichen auszugeben, allerdings leider nicht das Zeichen das ich eigentlich haben wollte.
Ich habe mir mein Zeichen in der Windows eigenen Zeichentabelle ausgesucht. Ich dachte links unten sei der Unicode-Wert zu finden.
Wenn ich diesen Wert in meinen Prog. einsetzte kommt aber ein anderes Zeichen heraus.
Habe Io l' nicht den korrekten Unicode-Wert meines Zeichens, oder arbeitet mein Code nicht korrekt?


 $H Messages.ph
CLS
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
var id% = 1
Var static&=CreateW("Static","Das ist ein Static. \nHier sollen Unicode-Zeichen rein.",$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance)
Waitinput
SetText static&,chr$($2192)
Waitinput
End

Proc HiByte

    Parameters word%
    Return word% >> 8

EndProc

Proc LoByte

    Parameters word%
    Return word% & $FF

EndProc

Proc UTF

    parameters text$
    declare b#
    Dim b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

EndProc

Proc CreateW

    If %pCount > 10

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    Else

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        Var exstyle& = 0

    EndIf

    Class$ = UTF(Class$)
    Name$ = UTF(Name$)
    Var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = If(External("USER32","IsMenu",id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    Var handle& = External("USER32","CreateWindowExW",exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    IfNot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:\n\n" + Class$,"F E H L E R !!!",4096)

    EndIf

    Dispose cs#
    Return handle&

EndProc


39 kB
Hochgeladen:02.04.2012
Downloadcounter179
Download
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
02.04.2012  
 



Hier schau so gehts:
 $H Messages.ph
CLS
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
Var hUser& = ImportDLL("USER32","u_")
var id% = 1
Var static&=CreateW("Static","Das ist ein Static. \nHier sollen Unicode-Zeichen rein.",$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance)
Waitinput
declare s$
s$=chr$($92)+chr$($21)+"\z\z"
u_SetWindowTextW(static&,addr(s$))
Waitinput
FreeDLL hUser&
End

Proc UTF

    parameters text$
    declare b#
    Dim b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

EndProc

Proc CreateW

    If %pCount > 10

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    Else

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        Var exstyle& = 0

    EndIf

    Class$ = UTF(Class$)
    Name$ = UTF(Name$)
    Var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = if(u_IsMenu(id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    Var handle& = u_CreateWindowExW(exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    IfNot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:\n\n" + Class$,"F E H L E R !!!",4096)

    EndIf

    Dispose cs#
    Return handle&

EndProc

 
02.04.2012  
 




Julian
Schmidt
Und wie ist es, wenn ich das Zeichen mit anderen Strings kombinieren möchte?
 $H Messages.ph
CLS
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
var id% = 1
Var static&=CreateW("Static","Das ist ein Static. \nHier sollen Unicode-Zeichen rein.",$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance)
Waitinput
SetText static&,chr$($2192)
External("USER32","SetWindowTextW",static&,"Test/z/z"+chr$($92)+chr$($21))+" \z\zTest"
Waitinput
End

Proc UTF

    parameters text$
    declare b#
    Dim b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

EndProc

Proc CreateW

    If %pCount > 10

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    Else

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        Var exstyle& = 0

    EndIf

    Class$ = UTF(Class$)
    Name$ = UTF(Name$)
    Var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = If(External("USER32","IsMenu",id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    Var handle& = External("USER32","CreateWindowExW",exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    IfNot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:\n\n" + Class$,"F E H L E R !!!",4096)

    EndIf

    Dispose cs#
    Return handle&

EndProc

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
02.04.2012  
 



 
- Page 2 -


Like that?
External("USER32","SetWindowTextW",static&,"T\ze\zs\zt\z\z\z")

bzw.
s$=utf("Test")
External("USER32","SetWindowTextW",static&,addr(s$))

Zeichen hat halt 2 statt 1 Byte und String möchte statt nur mit \z (chr(0)) mit \z\z DoppelNull "nullterminiert" werden.
 
02.04.2012  
 




Julian
Schmidt
Ok, so funzt alles.
Danke IF. Du warst mir eine grande Aiuto.
 $H Messages.ph
CLS
Struct CREATESTRUCT = lpCreateParams&, hInstance&, hMenu&, hwndParent&, cy%, cx%, y%, x%, style&, lpszName&, lpszClass&, dwExStyle&
var id% = 1
Var static&=CreateW("Static","Das ist ein Static. \nHier sollen Unicode-Zeichen rein.",$50000000,10,10,width(%hwnd)-20,35,%hwnd,0,%hinstance)
Waitinput
SetText static&,chr$($2192)
External("USER32","SetWindowTextW",static&,utf("Test ")+chr$($92)+chr$($21)+utf(" Test"))
Waitinput
End

Proc UTF

    parameters text$
    declare b#
    Dim b#,2*len(text$)+2
    StringW b#,0 = text$
    text$ = Char$(b#,0,SizeOf(b#)-2)
    return text$

EndProc

Proc CreateW

    If %pCount > 10

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&,exstyle&

    Else

        Parameters Class$,Name$,style&,x%,y%,dx%,dy%,pWnd&,pid%,hInst&
        Var exstyle& = 0

    EndIf

    Class$ = UTF(Class$)
    Name$ = UTF(Name$)
    Var cs# = New(CREATESTRUCT)

    With cs#

        .lpCreateParams& = SizeOf(cs#)
        .hInstance& = hInst&
        .hMenu& = If(External("USER32","IsMenu",id%),id%,0)
        .hwndParent& = pWnd&
        .cy% = dy%
        .cx% = dx%
        .y% = y%
        .x% = x%
        .style& = style&
        .lpszName& = Addr(Name$)
        .lpszClass& = Addr(Class$)
        .dwExStyle& = exstyle&

    EndWith

    Var handle& = External("USER32","CreateWindowExW",exstyle&,Addr(Class$),Addr(Name$),style&,x%,y%,dx%,dy%,pWnd&,id%,hInst&,cs#)
    inc id%

    IfNot handle&

        Class$ = WinError$(%WinError)
        MessageBox("Es trat folgender Fehler auf:\n\n" + Class$,"F E H L E R !!!",4096)

    EndIf

    Dispose cs#
    Return handle&

EndProc

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
02.04.2012  
 




Jörg
Sellmeyer
Julian57 (02.04.12)
Ok, so funzt alles.


Du bist ja auch ein Witzbold: iFs Code kopieren und dann Deinen Beitrag als Lösung deklarieren. Das ist nicht die feine Forums-Nettiquette...
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
02.04.2012  
 





Genau genommen ist die Lösung Nicos Verdienst -

kann er ja Nicos Beitrag (  [...]  ) nen Star verpassen. ^.^
 
02.04.2012  
 




funkheld

Du bist ja auch ein Witzbold: iFs Code kopieren und dann Deinen Beitrag als Lösung deklarieren. Das ist nicht die feine Forums-Nettiquette...


Hmm..., du interpretierst das falsch !

Jeder der das Alles von Oben nach Unten ruhig durchliest, versteht das nicht als Kopie sondern als kooperative Zusammenarbeit.....

Was hast du da per Probleme mit der guten Zuammenarbeit ?

Die Anmache führt nur dazu das einer seinen Code, der mit der Forumhilfe gelöst wurde, hier nicht mehr als fertiges gemeinsames Produkt reinstellt.
Resultat ist, das das Foro verweist mit der Weiterentwicklung von Programmen.

Gruss
 
04.04.2012  
 




Jörg
Sellmeyer
Ich potuto genausogut sagen,dass das dazu führt, dass niemand mehr Lust hat auf solche Beiträge zu reagieren:


Wie meinst du das?
Beispiel?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
04.04.2012  
 




funkheld
Wenn einer Verbesserungsvorschläge macht, sollte ein Anderer nicht dessen Rechte anzweifeln um dadurch eine Eigentumständerung machen zugunsten des Verbesserungsvorschlagenden. Wenn dann soll der Verbesserungsvorschlagenden ein Recht per das Programm einräumen.


Wie meinst du das?
Beispiel?


Wie soll man sonst Fragen ?
Die Fragen sind kurz, klar und verständlich .

PS: Ich möchte dieses Thema nicht weiter vertiefen, sondern die Programmlösung oben ist wichtiger.

Danke.

Gruss
 
04.04.2012  
 




Answer


Topictitle, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

17.525 Views

Untitledvor 0 min.
E.T.14.01.2024
Sven Bader25.02.2021
Langer30.12.2020
Manfred Barei23.02.2020
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie