Español
Fuente/ Codesnippets

Hyperlinks Messagebox Opción

 
- Página 1 -


Andreas Miethe, URL=www.paules-pc-forum.de/forum/spezielles/123967-messagebox-con-option.html#post754182, ZEITPUNKT=26.12.2009
Messagebox con Opción
Un kleine Spielerei con uno Messagebox y una Hook.
Tal vez kanns sí alguien gebrauchen.
 $H Windows.ph
 $H Messages.ph
#############################
Messagebox-Konstanten
DEF &IDOK         1
DEF &IDCANCEL     2
DEF &IDABORT      3
DEF &IDRETRY      4
DEF &IDIGNORE     5
DEF &IDYES        6
DEF &IDNO         7
DEF &IDICON      20
DEF &IDPROMPT $FFFF
DEF &IDSTATIC $CAFE
#############################
Struct CWPSTRUCT = lParam&,wParam&,message&,hwnd&
Struct Rect = left&,top&,right&,bottom&
Declarar Hook&,OldProc&
Declarar B&,B1&

Proc MB

    Parámetros wnd&,msg&,wparam&,lparam&
    Declarar Result&

    seleccionar msg&

        Caseof ~WM_INITDIALOG

        Var Rect# = New(Rect)
        ~GetWindowRect(wnd&,Rect#)
        ~Movewindow(wnd&,Rect#.left&,rect#.top&,width(wnd&)+12,Height(wnd&)+40,1)
        B& = Crear("CheckBox",wnd&,"Diese Meldung no otra vez anzeigen",0,height(wnd&)-18,width(wnd&),18)
        SendMessage(B&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
        SendMessage(~GetDlgItem(wnd&,&IDICON),~STM_SETIMAGE,~IMAGE_ICON,~LoadIcon(%hInstance,"EIMER"))
        Result& = 1

        Caseof ~WM_COMMAND

        If lparam& = b&

            If Getcheck(B&)

                B1& = 1

            Endif

        Endif

        Caseof ~WM_NCDESTROY

        ~UnhookWindowsHookEx(Hook&)
        Result& = 1

    Endselect

    Result& = ~CallWindowProc(OldProc&,wnd&,msg&,wparam&,lparam&)
    Volver Result&

ENDPROC

Proc SetHook

    Parámetros nCode&, wParam&, lParam&

    Select nCode&

        Caseof ~HC_ACTION

        Var pw# = New(CWPSTRUCT)
        pw# = lparam&

        If pw#.message& = ~WM_INITDIALOG

            OldProc& = ~SetWindowlong(pw#.hwnd&,~GWL_WNDPROC,ProcAddr("MB",4))

        Endif

    EndSelect

    Volver ~CallNextHookEx(Hook&, nCode&, wParam&, lParam&)

ENDPROC

Proc PRF_Messagebox

    Conjunto("Fastmode",1)
    Parámetros  body$, title$, flags&
    Declarar Result&
    Flags& = Flags& | ~MB_ICONQUESTION
    Hook& = ~SetWindowsHookEx(~WH_CALLWNDPROC, ProcAddr("SetHook",3), 0,~GetCurrentThreadId())
    Result& = MessageBox(title$,body$, flags&)
    Conjunto("Fastmode",0)
    Volver Result&

ENDPROC

cls
Imprimir PRF_Messagebox("Titel","Wirklich löschen ? ",~MB_YESNO)
Imprimir IF(B1&=1,"Nicht otra vez anzeigen","wieder anzeigen")
Waitinput

Gruss
Andreas


Auch muy schön con Hyperlinks:  [...] 

Andreas Miethe, Beitrag=55999, Zeitpunkt=06.02.2010
Per Hook va una Menge
 $H Windows.ph
 $H Messages.ph
Struct CWPSTRUCT = lParam&,wParam&,message&,hwnd&
Struct Rect = left&,top&,right&,bottom&
#############################
Messagebox-Konstanten
DEF &IDOK         1
DEF &IDCANCEL     2
DEF &IDABORT      3
DEF &IDRETRY      4
DEF &IDIGNORE     5
DEF &IDYES        6
DEF &IDNO         7
DEF &IDHELP       9
DEF &IDTRYAGAIN  10
DEF &IDCONTINUE  11
DEF &IDICON      20
DEF &IDPROMPT $FFFF
DEF &IDSTATIC $CAFE
#############################

Proc MB

    Parámetros wnd&,msg&,wparam&,lparam&
    Declarar Result&,W&,H&,b&
    Result& = ~CallWindowProc(OldProc&,wnd&,msg&,wparam&,lparam&)

    seleccionar msg&

        Caseof ~WM_INITDIALOG

        Var SRect# = New(Rect)
        ~GetWindowRect(wnd&,SRect#)
        Diálogo vergrössern y zentrieren
        W& = SRect#.right& - SRect#.left&
        H& = SRect#.bottom& -SRect#.top& + 40
        ~Movewindow(wnd&,((%maxx/2)-(W&/2)),((%maxy/2)-(H&/2)),W&,H&,1)
        Positionen el Controls 40 Pixel después de untern verchieben
        ~Getwindowrect(~GetDlgItem(wnd&,&IDSTATIC),SRect#)
        ~Mapwindowpoints(0,wnd&,SRect#,2)
        ~Movewindow(~GetDlgItem(wnd&,&IDSTATIC),0,SRect#.Top&+40,SRect#.Right&,SRect#.Bottom&,1)

        Whileloop 1,11

            If ~IsWindow(~GetDlgItem(wnd&,&Loop))

                ~Getwindowrect(~GetDlgItem(wnd&,&Loop),SRect#)
                ~Mapwindowpoints(0,wnd&,SRect#,2)
                ~Setwindowpos(~GetDlgItem(wnd&,&Loop),0,SRect#.Left&,SRect#.Top&+40,0,0,~SWP_NOSIZE | ~SWP_NOZORDER)

            Endif

        Endwhile

        Position vom PROMPT holen
        ~Getwindowrect(~GetDlgItem(wnd&,&IDPROMPT),SRect#)
        ~Mapwindowpoints(0,wnd&,SRect#,2)
        LINKS bajo PROMPT invertir
        Link& = Control("SysLink","<a>Besuch mi Homepage</a>",$50000000,SRect#.Left&,SRect#.Bottom&+10,width(wnd&),18,wnd&,4000,0,0)
        SendMessage(Link&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
        Mail& = Control("SysLink","<a>Schick me una Mail</a>",$50000000,SRect#.Left&,SRect#.Bottom&+30,width(wnd&),18,wnd&,4001,0,0)
        SendMessage(Mail&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
        Disponer SRect#
        Result& = 1

        Caseof ~WM_NOTIFY

        Link abfragen

        If (Largo(lparam&,8) = -2) and (Largo(lParam&,0) = LINK&)

            ShellExec("https://www.ampsoft.eu","open",~SW_SHOWNORMAL)

        endif

        If (Largo(lparam&,8) = -2) and (Largo(lParam&,0) = Mail&)

            ShellExec("Mailto://","open",~SW_SHOWNORMAL)

        endif

        Result& = 1

        Caseof ~WM_NCDESTROY

        ~UnhookWindowsHookEx(Hook&)
        Result& = 1

    Endselect

    Volver Result&

ENDPROC

Proc SetHook

    Parámetros nCode&, wParam&, lParam&

    Select nCode&

        Caseof ~HC_ACTION

        Var pw# = New(CWPSTRUCT)
        pw# = lparam&

        If pw#.message& = ~WM_INITDIALOG

            OldProc& = ~SetWindowlong(pw#.hwnd&,~GWL_WNDPROC,ProcAddr("MB",4))
            Disponer pw#

        Endif

    EndSelect

    Volver ~CallNextHookEx(Hook&, nCode&, wParam&, lParam&)

ENDPROC

Proc PRF_Messagebox

    Conjunto("Fastmode",1)
    Parámetros  body$, title$, flags&
    Declarar Result&
    Hook& = ~SetWindowsHookEx(~WH_CALLWNDPROC, ProcAddr("SetHook",3), 0,~GetCurrentThreadId())
    Result& = MessageBox(title$,body$, flags&)
    Conjunto("Fastmode",0)
    Volver Result&

ENDPROC

Hier gehts los
Declarar Hook&,OldProc&
Declarar LINK&,Mail&
cls
Imprimir PRF_Messagebox("Eine Cuestión...","Wirklich löschen ?",~MB_YESNOCANCEL | ~MB_DEFBUTTON2 | ~MB_ICONQUESTION | ~MB_APPLMODAL)
Waitinput
 
27.12.2009  
 



 
- Página 1 -



Andreas
Miethe


Jörg Sellmeyer, Beitrag=55605, Zeitpunkt=27.12.2009
Sehr schön! En me se allerdings, en lugar de des Textes en el Checkbox, sólo una schwarzer Balken adecuado.
Ist eigentlich dein ~DeleteObject() de otra manera como el profane oder podría uno auch simplemente DeleteObject h & uso?


Relacionado con la schwarzen Balken verstehe Yo no, Yo habs sí extra bajo XP getestet y fotografiert.

~DeleteObject() oder profanes DeleteObject es wohl el Selbe.
 
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 :  [...] 
27.12.2009  
 



H.Brill, Beitrag=55597, Zeitpunkt=27.12.2009
IF: EndProcedure en el Code geändert en ENDPROC.

Programmierste stereo -> PureBasic + XProfan ?


Also Yo tener kein PB y costumbre auch keins en a wissen, dass EndProcedure wohl una ENDPROC hätte voluntad debería. ^ ^
 
27.12.2009  
 




Frank
Abbing
Den schwarzen Balken kann Yo bestätigen.
 
27.12.2009  
 




Jörg
Sellmeyer
So sieht el entonces de:


mb.jpg  
10 kB
Hochgeladen:27.12.2009
Ladeanzahl146
Descargar
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
27.12.2009  
 



 
- Página 2 -



Rolf
Koch
Como siempre el Manifest, welche esta schwarzen Balken erscheinen lässt!
 
27.12.2009  
 




Jörg
Sellmeyer
En me ha Profano no Manifest-Expediente.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
28.12.2009  
 




Dieter
Zornow
Ebenfalls schwarzer Balken
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
28.12.2009  
 




Andreas
Miethe


Rolf Koch, Beitrag=55613, Zeitpunkt=27.12.2009
Como siempre el Manifest, welche esta schwarzen Balken erscheinen lässt!




Das ha geholfen.
Pida a los Code dementsprechend geändert.
 
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 :  [...] 
28.12.2009  
 




Jörg
Sellmeyer
Super! Funktioniert.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
28.12.2009  
 




Paul
Glatz
Como es posible el Texto el Buttons a ändern?
 
12.10.2010  
 



Na spätestens z.B. con FindWindowEx Buttons encontrar weils el Params
ermöglicht y así viele Buttons ne MSG-Box no ha aber GetDlgItem va determinado auch... y luego sólo SetText.
 
12.10.2010  
 




Paul
Glatz
Aha. Im bunteren Ejemplo es el Texto sí gelb como kann Yo ihn una otro Farbe geben?

EDIT:
Den Texto des Sí Buttons ändern: settext ~GetDlgItem(wnd&,&IDYES),"t1"
 
12.10.2010  
 




Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

12.611 Views

Untitledvor 0 min.
Member 862464113.05.2024
Uwe Lang17.12.2018
Andre Rohland08.02.2018
Alibre27.11.2017
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie