Italia
Fonte/ 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 grande... ist halt die Frage wieviel Zeit der Rechner grad hat etc...

bei größeren Bitmaps fällt das naturalmente 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 naturalmente 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
Downloadcounter233
Download
181 kB
Hochgeladen:16.11.2011
Downloadcounter254
Download
 
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


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

14.577 Views

Untitledvor 0 min.
RudiB.02.09.2022
Langer01.01.2022
Roland Schäffer18.11.2021
p.specht18.11.2021
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

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


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