Foro | | | | - 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 |
| | | | |
| | « 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
|
| | | | | |
| | | | | - 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
|
| | | | |
| | | Jo, gibt leider 1 statt 2 aus:
Dann kannst ja z.B. per: Dein Zeichen ansetzen aber irgendwie fehlt mir in Deinem Beispiel eine unicode-WndProc wie sie Nico vormacht. |
| | | | |
| | 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
|
| | | | |
| | | 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
|
| | | | |
| | 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
|
| | | | |
| | | | - Page 2 - |
| | | Like that?
External("USER32","SetWindowTextW",static&,"T\ze\zs\zt\z\z\z")
bzw.
Zeichen hat halt 2 statt 1 Byte und String möchte statt nur mit \z (chr(0)) mit \z\z DoppelNull "nullterminiert" werden. |
| | | | |
| | 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
|
| | | | |
| | 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. ^.^ |
| | | | |
| | 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 |
| | | | |
| | 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 |
| | | | |
|
AnswerTopic-Options | 17.533 Views |
ThemeninformationenDieses Thema hat 4 subscriber: |