Français
Source/ Codesnippets

Abreißbare Toolbar

 

ByteAttack
Beispiel et Bitmap dans qui ZIP
 $H windows.ph
 $H messages.ph
STRUCT RECT = Left&,Righ&,Top&,Bottom&
Déclarer bereich#,être#,objet#,erg&,erg2&,x&,y&,à gauche1&,dessus1&,à gauche2&,dessus2&
Faible être#,8
Faible bereich#,1024
Faible objet#,16
' Ermittelt cela Handle sous dem Mauszeiger

Proc MPos

    ~GetCursorPos(être#)
    x&=Long(être#,0)
    y&=Long(être#,4)
    erg&=~WindowFromPoint(x&,y&)

ENDPROC

' Verschiebt qui Toolbar

Proc MoveIt

    Paramètres wnd&,lParam&
    ~GetClientRect(wnd&,R#)
    ~MapWindowPoints(wnd&,%hwnd,R#,2)

    Si ~PtInRect(R#,LoWord(lParam&),HiWord(lParam&))

        ~Capture de sortie()
        UseCursor 5
        SendMessage(wnd&,~WM_SYSCOMMAND,~SC_MOVE+1,0)
        UseCursor 0
        Retour 0

    endif

    Retour 1

ENDPROC

Proc PosInWnd

    Claire objet#
    ~GetWindowRect(STB1&,objet#)
    ~ScreenToClient(%HWND,objet#)
    à gauche1&=Long(objet#,0)
    dessus1&=Long(objet#,4)
    Claire objet#
    ~GetWindowRect(STB2&,objet#)
    ~ScreenToClient(%HWND,objet#)
    à gauche2&=Long(objet#,0)
    dessus2&=Long(objet#,4)

ENDPROC

' Ausrichten

Proc UpdateToolbar

    Paramètres TB%,handle&
    PosInWnd

    si TB%=1

        si à gauche1&<5

            SetWindowpos STB1&=0,2-width(STB1&),32;0
            SetWindowpos STB2&=width(STB1&),2-width(STB2&),32;0

        elseif à gauche1&>width(STB1&)

            SetWindowpos STB2&=0,2-width(STB2&),32;0
            SetWindowpos STB1&=width(STB2&),2-width(STB1&),32;0

        d'autre

            si à gauche2&=0

                SetWindowpos STB1&=width(STB2&),2-width(STB1&),32;0

            d'autre

                SetWindowpos STB1&=0,2-width(STB1&),32;0

            endif

        endif

    elseif TB%=2

        si à gauche2&<5

            SetWindowpos STB2&=0,2-width(STB2&),32;0
            SetWindowpos STB1&=width(STB2&),2-width(STB1&),32;0

        elseif à gauche2&>width(STB2&)

            SetWindowpos STB2&=width(STB1&),2-width(STB2&),32;0
            SetWindowpos STB1&=0,2-width(STB1&),32;0

        d'autre

            si à gauche1&=0

                SetWindowpos STB2&=width(STB1&),2-width(STB2&),32;0

            d'autre

                SetWindowpos STB2&=0,2-width(STB2&),32;0

            endif

        endif

    endif

ENDPROC

' Hauptfenster
Fenêtre Style 24
Titre de la fenêtre "Abreißbare Toolbar"
Fenêtre %maxx/2-320,(%maxY/2-240)-640,480
Cls ~GetSysColor(16)
USEP 0,1,~GetSysColor(15)
UseBrush 1,~GetSysColor(15)
Rectangle 0,0-%maxx,36
USEP 0,1,~GetSysColor(15)
Line 0,0-%maxx,0
USEP 0,1,RGB(255,255,255)
Line 0,1-%maxx,1
USEP 0,1,0
Line 0,34-%maxx,34
USEP 0,1,RGB(255,255,255)
Line 0,35-%maxx,35
var CB&=Créer("CheckBox",%hwnd,"Ausrichten",530,420,90,20)
SetCheck CB&,1
var STB1&=Contrôle("Dialogue",»,$54000000,0,2,105,32,%hwnd,0,%HINSTANCE)
var SB1&=Créer("Button",STB1&,»,4,2,4,28)
EnableWindow SB1&,0
var STB2&=Contrôle("Dialogue",»,$54000000,105,2,136,32,%hwnd,0,%HINSTANCE)
var SB2&=Créer("Button",STB2&,»,4,2,4,28)
EnableWindow SB2&,0
var TB1&=Contrôle("Dialogue",»,$54000000,10,0,95,32,STB1&,0,%HINSTANCE)
var TB2&=Contrôle("Dialogue",»,$54000000,10,0,126,32,STB2&,0,%HINSTANCE)
var long hBild = create(«PCSI», -1, $PROGDIR+"test24.bmp")' <-------------- ggf. ANPASSEN !!!
var long hBildliste = create("ImageList", 24, 24, hBild, rgb(192,192,192))
var long hToolbar1 = create("Toolbar", TB1&, hBildliste,0,0,2000,1)
var long hToolbar2 = create("Toolbar", TB2&, hBildliste,0,0,2000,1)
deleteobject hBild
Toolbar("AddButton", hToolbar1, 0, 100, "Neue Datei")
Toolbar("AddButton", hToolbar1, 1, 101, "Datei öffnen")
Toolbar("AddButton", hToolbar1, 2, 102, "Datei speichern")
Toolbar("AddButton", hToolbar2, 5, 200, "Ausschneiden")
Toolbar("AddButton", hToolbar2, 6, 201, "Kopieren")
Toolbar("AddButton", hToolbar2, 7, 202, "Einfügen")
Toolbar("AddButton", hToolbar2, 8, 203, "Löschen")
Var R# = New(RECT)
' Hauptprogrammschleife

WhileNot %Umessage = ~wm_close

    WaitInput
    MPos
    PosInWnd

    si erg&=STB1&

        SetWindowpos STB1&=à gauche1&,dessus1&-width(STB1&),height(STB1&);0
        ~EnumChildWindows(%hwnd,ProcAddr("MoveIt",2),MakeLong(%mousex,%mousey))
        Cas GetCheck(CB&)=1:UpdateToolbar 1,STB1&

    endif

    si erg&=STB2&

        SetWindowpos STB2&=à gauche2&,dessus2&-width(STB2&),height(STB2&);0
        ~EnumChildWindows(%hwnd,ProcAddr("MoveIt",2),MakeLong(%mousex,%mousey))
        Cas GetCheck(CB&)=1:UpdateToolbar 2,STB2&

    endif

Endwhile

'Ende
Dispose hdr#
Dispose R#
Dispose bereich#
Dispose objet#
end

1.008 kB
Bezeichnung:Abreißbare Toolbar
Hochgeladen:10.11.2015
Downloadcounter198
Download
 
Website:  [...] 
Facebook:  [...] 
10.11.2015  
 




Jörg
Sellmeyer
Extrem cool!
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
10.11.2015  
 




E.T.
Jo, dat fetzt
 
XProfan X3
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
11.11.2015  
 




ByteAttack
merci!

Hab encore un kleinen faute 'ausgebügelt'. qui aktuell verschiebbare Toolbar ist maintenant toujours im Vordergrund...
(était wohl trop fatigué gestern)
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
11.11.2015  
 




Georg
Teles
Richtig bien
 
XProfan X3
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

11.11.2015  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

8.247 Views

Untitledvor 0 min.
Gast.081503.10.2024
Member 862464112.05.2024
Thomas Freier04.02.2024
H.Brill01.10.2023
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie