Deutsch
Quelltexte/ Codesnippets

Anklickbar Bitmapcontrol Extstyle Stile Tooltip Verschiedenen

 

Jörg
Sellmeyer

 $H windows.ph

SubProc Create.XBitmap

    Parameters hwnd&,hPic&,x%,y%,ToolTip$,ExtStyle%
    Case %pcount = 5:ExtStyle% = 0

    If ExtStyle% = 1

        ExtStyle% = ~WS_EX_DLGMODALFRAME

    ElseIf ExtStyle% = 2

        ExtStyle% = ~WS_EX_CLIENTEDGE

    ElseIf ExtStyle% = 3

        ExtStyle% = ~WS_EX_CLIENTEDGE | ~WS_EX_DLGMODALFRAME

    EndIf

    SizeOf(hPic&)
    Var hdl& = Control("STATIC","test",$5400090E,x%,y%,%bmpx,%bmpy,hwnd&,0,%hinstance,ExtStyle%)
    SendMessage(hdl&,~STM_SETIMAGE,0,hPic&)
    Create("Tooltip",hwnd&,hdl&,ToolTip$)
    Return hdl&

EndProc

Cls
ChDir $WinPath
Print FindFirst$("*.bmp"),

If %Ioresult

    Print "Keine Bilder vorhanden"
    WaitInput
    End

Else

    print FindNext$(),FindNext$(),FindNext$()

EndIf

Var hPic1& = Create("hSizedPic",-1,FindFirst$("*.bmp"),80,80,1)
Var hPic2& = Create("hSizedPic",-1,FindNext$(),80,80,1)
Var hPic3& = Create("hSizedPic",-1,FindNext$(),80,80,1)
Var hPic4& = Create("hSizedPic",-1,FindNext$(),80,80,1)
var h1& = Create("XBitmap",%hwnd,hPic1&,10,100,FindFirst$("*.bmp"),2)
var  h2& = Create("XBitmap",%hwnd,hPic2&,110,100,FindNext$(),1)
var  h3& = Create("XBitmap",%hwnd,hPic3&,210,100,FindNext$(),2)
var  h4& = Create("XBitmap",%hwnd,hPic4&,310,100,FindNext$(),3)
AddString(0,Str$( hpic1&))
AddString(0,Str$( hpic2&))
AddString(0,Str$( hpic3&))
AddString(0,Str$( hpic4&))
Randomize
Declare bild&
Print "einfach mal die Bilder anklicken"

While 1

    WaitInput
    bild& = Val(GetString$(0,Rnd(4)))

    If %key = 27

        Break

    ElseIf (&wparam = h1&) Or (&lparam = h1&)

        ~LockWindowUpdate(h1&)
        SendMessage(h1&,~STM_SETIMAGE,0,bild&)
        ~LockWindowUpdate(0)

    ElseIf (&wparam = h2&) Or (&lparam = h2&)

        SendMessage(h2&,~STM_SETIMAGE,0,bild&)

    ElseIf (&wparam = h3&) Or (&lparam = h3&)

        SendMessage(h3&,~STM_SETIMAGE,0,bild&)

    ElseIf (&wparam = h4&) Or (&lparam = h4&)

        SendMessage(h4&,~STM_SETIMAGE,0,bild&)

    EndIf

Wend

DeleteObject hPic1&,hPic2&,hPic3&,hPic4&
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.11.2011  
 



Was ich schade finde ist das man Bitmaps irgendwie nicht flickerfrei neue Bilder zuweisen kann.
 
11.11.2011  
 




Jörg
Sellmeyer
bei den kleinen Bildern fällt es nicht so auf aber selbst mit LockWindowUpdate sieht man ab und an so einen weißen Streifen. Meinst Du das?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.11.2011  
 



Ob klein oder groß... ist halt die Frage wieviel Zeit der Rechner grad hat etc...

bei größeren Bitmaps fällt das natürlich eher auf.

Musst mal z.B. sehr fix aktualisieren z.B. 50 Bilder pro Sekunde oder viele kleine Bitmaps.
.
 
11.11.2011  
 



Solch direkt in XProfan eingbautes Canvas (  [...]  ) wäre der Brüller aber steht ja offensichtlich nicht einmal zur Diskussion obwohl es einfach umzusetzen ist da im Prinzip nur ein hPic bei wmPaint gemalt werden muss. Quasi ein create.canvas das ein Control/ Fenster erstellt dem ein hPic zugeordnet werden kann welches gezeichnet wird bei wm_paint. (Es muss ja nicht gleich eine scrollbare Zeichenfläche sein wie sie von der Inc erzeugt wird die dynamisch per Proc zeichnet statt ein hPic.)
 
11.11.2011  
 




Jörg
Sellmeyer
Noch mehr Spielereien mit Tooltips und Bitmaps. Keine Ahnung, ob das so "statthaft" ist. Ist aber lustich:
Window %maxx,%maxy
Declare hBmp&,t&
ChDir $winpath
AddFiles "*.bmp"
Declare hPic&[],hBack&[]
Var y% = 2
Declare bmptext$

WhileLoop 0,%getcount'-270

    hPic&[&Loop] = Create("hSizedPic",-1,GetString$(0,&Loop),80,80,1)
    hBmp& = Create("Bitmap",%hwnd,hPic&[&Loop],5 + (&Loop Mod 23) * 81,y%)
    hBack&[&Loop] = Create("hSizedPic",-1,GetString$(0,&Loop),380,380,1)
    bmptext$ = MkStr$(Space$(%bmpx \ 3) + "\n",%bmpy \ 13)
    t& = Create("Tooltip",%hwnd,hBmp&,bmptext$)
    SetText t&, %hwnd, 0,"",0,GetString$(0,&Loop)
    'das bewirkt leider nichts
    ' SetWindowPos t& = 2000,0 - %bmpx,%bmpy;1
    Create("Bitmap",t&,hBack&[&Loop],10,30)
    SetStyle hBmp&,GetStyle(hbmp&) | $100
    CaseNot (&Loop + 1) Mod 23:Inc y%,80
    WindowTitle Str$(%getcount - &Loop)

Wend

Print "fertig!"
Randomize

While 1

    Waitinput

    If IsKey(27)

        Break

    EndIf

Wend

WhileLoop 0,SizeOf(hPic&[])-1

    DeleteObject hPic&[&Loop],hBack&[&Loop]

Wend

 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
15.11.2011  
 



Öhm... bei mir hier grad unter Vista sehe ich ("nur") ein weißes Fenster mit der Ausgabe "fertig!".


 
16.11.2011  
 




Jörg
Sellmeyer
Hast Du denn Bitmaps im Windowsordner? Sonst paß den Pfad doch mal an. Geht ja auch mit allen anderen Formaten, wenn Du den Code entsprechend änderst.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
16.11.2011  
 



Hmpf, X11 gibt mir natürlich bei dieser Anweisung:
die Meldung:



aus.

Also fix erstmal XProfan12 zusammengesucht da ich auf diesem Computer hier noch "neu" bin und siehe da:



Nur rechts der Rand zwischen Bild und ToolTip-Rand ist nicht so breit wie links.

8 kB
Hochgeladen:16.11.2011
Ladeanzahl233
Herunterladen
181 kB
Hochgeladen:16.11.2011
Ladeanzahl254
Herunterladen
 
16.11.2011  
 




Jörg
Sellmeyer

Nur rechts der Rand zwischen Bild und ToolTip-Rand ist nicht so breit wie links.


Ja, die Platzierung ist sehr rudimentär, da SetWindowPos anscheinend nicht funktioniert bei Tooltips.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
16.11.2011  
 




Jörg
Sellmeyer
Ich probier grad mal aus, das auf einen Dialog auszulagern und peng - geht nicht
Ist das jetzt ne profaneigene Schikane oder will Windows das nicht?
Auf dem Dialog kommt zwar der Mausklick mit Rechts durch aber der linke Klick nur, wenn er als Doppelklick erfolgt. Ist doch plöd!
 $H windows.ph

SubProc Create.XBitmap

    Parameters hwnd&,hPic&,x%,y%,ToolTip$,ExtStyle%
    Case %pcount = 5:ExtStyle% = 0

    If ExtStyle% = 1

        ExtStyle% = ~WS_EX_DLGMODALFRAME

    ElseIf ExtStyle% = 2

        ExtStyle% = ~WS_EX_CLIENTEDGE

    ElseIf ExtStyle% = 3

        ExtStyle% = ~WS_EX_CLIENTEDGE | ~WS_EX_DLGMODALFRAME

    EndIf

    SizeOf(hPic&)
    Var hdl& = Control("STATIC","test",$5400090E,x%,y%,%bmpx,%bmpy,hwnd&,0,%hinstance,ExtStyle%)
    SendMessage(hdl&,~STM_SETIMAGE,0,hPic&)
    Create("Tooltip",hwnd&,hdl&,ToolTip$)
    Return hdl&

EndProc

Cls
Var dlg& = Create("Dialog",%hwnd,"Test",%winLeft + 50,%wintop + 100,600,400)
ChDir $WinPath
Print FindFirst$("*.bmp"),

If %Ioresult

    Print "Keine Bilder vorhanden"
    WaitInput
    End

Else

    print FindNext$(),FindNext$(),FindNext$()

EndIf

Var hPic1& = Create("hSizedPic",-1,FindFirst$("*.bmp"),80,80,1)
Var hPic2& = Create("hSizedPic",-1,FindNext$(),80,80,1)
Var hPic3& = Create("hSizedPic",-1,FindNext$(),80,80,1)
Var hPic4& = Create("hSizedPic",-1,FindNext$(),80,80,1)
var h1& = Create("XBitmap",dlg&,hPic1&,10,100,FindFirst$("*.bmp"),2)
var  h2& = Create("XBitmap",dlg&,hPic2&,110,100,FindNext$(),1)
var  h3& = Create("XBitmap",dlg&,hPic3&,210,100,FindNext$(),2)
var  h4& = Create("XBitmap",dlg&,hPic4&,310,100,FindNext$(),3)
AddString(0,Str$( hpic1&))
AddString(0,Str$( hpic2&))
AddString(0,Str$( hpic3&))
AddString(0,Str$( hpic4&))
Randomize
Declare bild&
Print "einfach mal die Bilder anklicken"

While 1

    WaitInput
    bild& = Val(GetString$(0,Rnd(4)))

    If %key = 27

        Break

    ElseIf (&wparam = h1&) Or (&lparam = h1&)

        print "a"
        ~LockWindowUpdate(h1&)
        SendMessage(h1&,~STM_SETIMAGE,0,bild&)
        ~LockWindowUpdate(0)

    ElseIf (&wparam = h2&) Or (&lparam = h2&)

        SendMessage(h2&,~STM_SETIMAGE,0,bild&)

    ElseIf (&wparam = h3&) Or (&lparam = h3&)

        SendMessage(h3&,~STM_SETIMAGE,0,bild&)

    ElseIf (&wparam = h4&) Or (&lparam = h4&)

        SendMessage(h4&,~STM_SETIMAGE,0,bild&)

    EndIf

Wend

DeleteObject hPic1&,hPic2&,hPic3&,hPic4&
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
17.05.2018  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

14.488 Betrachtungen

Unbenanntvor 0 min.
RudiB.02.09.2022
Langer01.01.2022
Roland Schäffer18.11.2021
p.specht18.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Jörg Sellmeyer (6x)
iF (5x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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