| |
|
|
| Mi Cuestión a Andreas Miethe, qué richtigerweise en funzt posición podría, en el Malen aller individual Einträge el ListBox así incluso a tomar, que un hPic suscrito se en lugar de z.B. el Eintragstext. KompilierenMarcaSeparacióncls
var h&=create(ListBox,hWnd,0,10,10,200,200)
var hPic&=create(hNewPic,15,15,$1278FF)
subClass h&,1
addString(h&,Hallo Welt)
addString(h&,Hallo Welt2)
while 1
waitInput
wend
end
subClassProc
if &sWnd=h&
funzt
drawPic hPic
endif
endProc
|
|
|
| |
|
|
|
Andreas Miethe
| ¡Hola @IF
Posesiones todavía una kleines Problema beim Starten por Interpreter, veces ne poco Pause hacer, meistens hilft el. KompilierenMarcaSeparaciónHeader-Dateien
$H windows.ph
$H messages.ph
Strukturen
Struct RECT = Left&,Top&,Right&,Bottom&
Struct DRAWITEMSTRUCT = CtlType&,CtlID&,itemID&,itemAction&,itemState&,hwndItem&,hDC&,rcItem!RECT,itemData&
Declare lpdis#,Rect#,h&
Dim lpdis#,DRAWITEMSTRUCT
Dim Rect#,RECT
var hPic&=create(hNewPic,15,15,$1278FF)
cls ~GetSysColor(~COLOR_BTNFACE)
subClass %hwnd,1
h& = Control(LISTBOX,,~WS_BORDER | ~WS_CHILD | ~WS_VISIBLE | ~LBS_OWNERDRAWFIXED | ~LBS_HASSTRINGS | ~LBS_STANDARD ,10,10,200,200,%hwnd,0,%hInstance,0)
SendMessage(h&, ~LB_SETITEMHEIGHT,0,Makelong(18,0))
Var Item& = AddString(h&,Hallo Welt)
SendMessage(h&,~LB_SETITEMDATA,Item&,hPic&)
Item& = AddString(h&,Hallo Welt 2)
SendMessage(h&,~LB_SETITEMDATA,Item&,hPic&)
AddString(h&,Hallo Welt 3)
Warum geht es mit dem Interpreter erst, wenn ich in die Listbox klicke ?
Als Kompilat funktioniert es !
Habe ich heute ein Brett vorm Kopf ?
Var Ende& = 0
Whilenot Ende&
WaitInput
EndWhile
end
SubClassProc
If SubClassMessage(%hwnd,~WM_DRAWITEM)
lpdis# = &slParam
Var Text$ = GetString$(lpdis#.hwndItem&,lpdis#.itemID&)
Var hbmpPicture& = SendMessage(lpdis#.hwndItem&,~LB_GETITEMDATA, lpdis#.itemID&,0)
Var hdcMem& = ~CreateCompatibleDC(lpdis#.hdc&)
Var hbmpOld& = ~SelectObject(hdcMem&, hbmpPicture&)
lpdis#.rcItem!left&= lpdis#.rcItem!left& + 20
Rect#.Left& = lpdis#.rcItem!left&
Rect#.Top& = lpdis#.rcItem!Top&
Rect#.Right& = lpdis#.rcItem!Right&
Rect#.Bottom& = lpdis#.rcItem!Bottom&
~DrawText(lpdis#.hdc&, Addr(Text$), Len(Text$), Rect#,0)
~BitBlt(lpdis#.hdc&, lpdis#.rcItem!left&-20, lpdis#.rcItem!top&, lpdis#.rcItem!right& - lpdis#.rcItem!left&,lpdis#.rcItem!bottom& - lpdis#.rcItem!top&, hdcMem&, 0, 0, ~SRCCOPY)
~SelectObject(hdcMem&, hbmpOld&)
~DeleteDC(hdcMem&)
Set(WinProc, 1)
EndIf
ENDPROC
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 21.02.2009 ▲ |
|
|
|
|
| Wow dankesehr schonmal - así sehe I cada Fall como pensamiento es.
Falls Yo algo para Interpreter herausfind... |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 21.02.2009 ▲ |
|
|
|
|
Andreas Miethe
| Jörg Sellmeyer
¡Hola Jörg,
el scheint a el direkten Übergabe el Rechteckstruktur en el Drawitem-Struktur a mentira. HH hatte auch el problema en Ownerdraw-Menüs. ¿Por qué en el me klappt y en andern no ? Keine Idea. Pida a los Code dahingehend abgeändert, Ahora debe trabajo. |
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 22.02.2009 ▲ |
|
|
|
|
Jörg Sellmeyer | Tuve todavía no 11.1 en él! Steoll doch otra vez el originalen Code rein - tal vez lag lo daran. @Horst - welche Versión hast Usted? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.02.2009 ▲ |
|
|
|
|
Andreas Miethe
| ¡Hola Jörg,
hier otra vez el Original. KompilierenMarcaSeparaciónHeader-Dateien
$H windows.ph
$H messages.ph
Strukturen
Struct RECT = Left&,Top&,Right&,Bottom&
Struct DRAWITEMSTRUCT = CtlType&,CtlID&,itemID&,itemAction&,itemState&,hwndItem&,hDC&,rcItem!RECT,itemData&
Declare lpdis#,Rect#,h&,WP#
Dim lpdis#,DRAWITEMSTRUCT
var hPic&=create(hNewPic,15,15,$1278FF)
cls ~GetSysColor(~COLOR_BTNFACE)
subClass %hwnd,1
h& = Control(LISTBOX,,~WS_BORDER | ~WS_CHILD | ~WS_VISIBLE | ~LBS_OWNERDRAWFIXED | ~LBS_HASSTRINGS | ~LBS_STANDARD | ~LBS_NOTIFY,10,10,200,200,%hwnd,0,%hInstance,0)
SendMessage(h&, ~LB_SETITEMHEIGHT,0,Makelong(18,0))
Var Item& = AddString(h&,Hallo Welt)
SendMessage(h&,~LB_SETITEMDATA,Item&,hPic&)
Item& = AddString(h&,Hallo Welt 2)
SendMessage(h&,~LB_SETITEMDATA,Item&,hPic&)
AddString(h&,Hallo Welt 3)
Warum geht es mit dem Interpreter erst, wenn ich in die Listbox klicke ?
Als Kompilat funktioniert es !
Habe ich heute ein Brett vorm Kopf ?
Var Ende& = 0
Whilenot Ende&
WaitInput
EndWhile
end
SubClassProc
If SubClassMessage(%hwnd,~WM_DRAWITEM)
lpdis# = &slParam
Var Text$ = GetString$(lpdis#.hwndItem&,lpdis#.itemID&)
Var hbmpPicture& = SendMessage(lpdis#.hwndItem&,~LB_GETITEMDATA, lpdis#.itemID&,0)
Var hdcMem& = ~CreateCompatibleDC(lpdis#.hdc&)
Var hbmpOld& = ~SelectObject(hdcMem&, hbmpPicture&)
lpdis#.rcItem!left&= lpdis#.rcItem!left& + 20
~DrawText(lpdis#.hdc&, Addr(Text$), Len(Text$), lpdis#.rcItem,0)
~BitBlt(lpdis#.hdc&, lpdis#.rcItem!left&-20, lpdis#.rcItem!top&, lpdis#.rcItem!right& - lpdis#.rcItem!left&,lpdis#.rcItem!bottom& - lpdis#.rcItem!top&, hdcMem&, 0, 0, ~SRCCOPY)
~SelectObject(hdcMem&, hbmpOld&)
~DeleteDC(hdcMem&)
Set(WinProc, 1)
EndIf
ENDPROC
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 22.02.2009 ▲ |
|
|
|
|
Jörg Sellmeyer | Mh - seltsam. Im Interpreter knallts no, en compilierter Form ya. Aunque zeigt en me el Runtime siempre todavía 11.0 a y Interpreter 11.1, obwohl Yo todos Archivos de el letzten(?) Actualización vom 2.12. en él habe. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.02.2009 ▲ |
|
|
|
|
Andreas Miethe
| Dann es qué schiefgelaufen en Deinem Actualización. Mi Runtime zeigt korrekt 11.1 a.
Dateidatum Runtime, Interpreter y Compiler 26.11.2008 11:01 |
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 22.02.2009 ▲ |
|
|
|
|
Jörg Sellmeyer | Ok - ahora tener ego auch. Hatte vergessen en el Projekteinstellungen el neue Runtime anzugeben. Läuft also salvo el Interpreter-/Runtime-Seltsamigkeit, el Usted oben erwähnt hast. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.02.2009 ▲ |
|
|
|
|
| Das Ejemplo zeigt, dass lo schade es, dass el SubClassProc sólo en el WaitInput greift.
Werden en el Programmablauf primero el Listboxen producido y befüllt, wonach entonces el Hauptschleife con WaitInput erreicht se.
Weil el Noticias perdido son, voluntad primero no Items dargestellt. |
| 446 kB | | Kurzbeschreibung: | sin nachträgliches Anschubsen | | Hochgeladen: | 02.03.2009 | | Ladeanzahl: | | | | Descargar | | | | 446 kB | | Kurzbeschreibung: | con nachträglichem Anschubsen | | Hochgeladen: | 02.03.2009 | | Ladeanzahl: | | | | Descargar | | | | 448 kB | | Kurzbeschreibung: | nachträgliches Anschubsen manchmal wirkungslos | | Hochgeladen: | 02.03.2009 | | Ladeanzahl: | | | | Descargar |
|
|
| |
|
|
|
| Hmpf, auch si yo z.B. wm_drawItem zusätzlich como UserMessage deklariere en el Hauptschleife mitzuteilen, dass en ListBoxen Einträge para dibujar wären, entonces erhalte Yo (natürlich) weder en uwnd, ulparam todavía uwparam una brauchbare Info - sodass Yo neu dibujar podría.
Könnte uno _nur innerhalb el subClassProc y innerhalb des waitInput addString anweisen sodass el Einträge auch adecuado voluntad. :/
Yo teste veces, si uno wm_command como UserMessage nutzen kann - debería sí en lbs_notfiy versandt voluntad con Handle el ListBox en el ulParam.
Apéndice: wm_command no es ausgelöst de addString - ldr. (auch) no Solución. |
|
|
| |
|
|