Français
Source/ Codesnippets

Hyperlinks Messagebox Option

 
- page 1 -


Andreas Miethe, URL=www.paules-pc-forum.de/forum/spezielles/123967-messagebox-avec-option.html#poste754182, ZEITPUNKT=26.12.2009
Messagebox avec Option
une kleine Spielerei avec einer Messagebox et einem Hook.
peut-être kanns oui quelqu'un 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&
Déclarer Hook&,OldProc&
Déclarer B&,B1&

Proc MB

    Paramètres wnd&,msg&,wparam&,lparam&
    Déclarer Result&

    sélectionner 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& = Créer("CheckBox",wnd&,"Diese annonce pas wieder 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

        Si lparam& = b&

            Si Getcheck(B&)

                B1& = 1

            Endif

        Endif

        Caseof ~WM_NCDESTROY

        ~UnhookWindowsHookEx(Hook&)
        Result& = 1

    Endselect

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

ENDPROC

Proc SetHook

    Paramètres nCode&, wParam&, lParam&

    Select nCode&

        Caseof ~HC_ACTION

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

        Si pw#.message& = ~WM_INITDIALOG

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

        Endif

    EndSelect

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

ENDPROC

Proc PRF_Messagebox

    Set("Fastmode",1)
    Paramètres  body$, title$, flags&
    Déclarer Result&
    Flags& = Flags& | ~MB_ICONQUESTION
    Hook& = ~SetWindowsHookEx(~WH_CALLWNDPROC, ProcAddr("SetHook",3), 0,~GetCurrentThreadId())
    Result& = MessageBox(title$,body$, flags&)
    Set("Fastmode",0)
    Retour Result&

ENDPROC

cls
Imprimer PRF_Messagebox("Titel","Wirklich effacer ? ",~MB_YESNO)
Imprimer IF(B1&=1,"Nicht wieder anzeigen","wieder anzeigen")
Waitinput

Gruss
Andreas


aussi très joli avec Hyperlinks:  [...] 

Andreas Miethe, Beitrag=55999, Zeitpunkt=06.02.2010
Per Hook allez une la quantité
 $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

    Paramètres wnd&,msg&,wparam&,lparam&
    Déclarer Result&,W&,H&,b&
    Result& = ~CallWindowProc(OldProc&,wnd&,msg&,wparam&,lparam&)

    sélectionner msg&

        Caseof ~WM_INITDIALOG

        Var SRect# = New(Rect)
        ~GetWindowRect(wnd&,SRect#)
        Dialog vergrössern et 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 qui Controls 40 Pixel pour 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

            Si ~IsWindow(~GetDlgItem(wnd&,&Boucle))

                ~Getwindowrect(~GetDlgItem(wnd&,&Boucle),SRect#)
                ~Mapwindowpoints(0,wnd&,SRect#,2)
                ~Setwindowpos(~GetDlgItem(wnd&,&Boucle),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 sous PROMPT anlegen
        Link& = Contrôle("SysLink","<a>Besuch mon 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& = Contrôle("SysLink","<a>Schick mir une Mail</a>",$50000000,SRect#.Left&,SRect#.Bottom&+30,width(wnd&),18,wnd&,4001,0,0)
        SendMessage(Mail&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
        Dispose SRect#
        Result& = 1

        Caseof ~WM_NOTIFY

        Link abfragen

        Si (Long(lparam&,8) = -2) and (Long(lParam&,0) = LINK&)

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

        endif

        Si (Long(lparam&,8) = -2) and (Long(lParam&,0) = Mail&)

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

        endif

        Result& = 1

        Caseof ~WM_NCDESTROY

        ~UnhookWindowsHookEx(Hook&)
        Result& = 1

    Endselect

    Retour Result&

ENDPROC

Proc SetHook

    Paramètres nCode&, wParam&, lParam&

    Select nCode&

        Caseof ~HC_ACTION

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

        Si pw#.message& = ~WM_INITDIALOG

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

        Endif

    EndSelect

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

ENDPROC

Proc PRF_Messagebox

    Set("Fastmode",1)
    Paramètres  body$, title$, flags&
    Déclarer Result&
    Hook& = ~SetWindowsHookEx(~WH_CALLWNDPROC, ProcAddr("SetHook",3), 0,~GetCurrentThreadId())
    Result& = MessageBox(title$,body$, flags&)
    Set("Fastmode",0)
    Retour Result&

ENDPROC

ici gehts à l'attaque
Déclarer Hook&,OldProc&
Déclarer LINK&,Mail&
cls
Imprimer PRF_Messagebox("Eine Frage...","Wirklich effacer ?",~MB_YESNOCANCEL | ~MB_DEFBUTTON2 | ~MB_ICONQUESTION | ~MB_APPLMODAL)
Waitinput
 
27.12.2009  
 



 
- page 1 -



Andreas
Miethe


Jörg Sellmeyer, Beitrag=55605, Zeitpunkt=27.12.2009
très joli! chez mir wird allerdings, statt des Textes dans qui Checkbox, seulement un schwarzer poutre angezeigt.
Ist eigentlich dein ~DeleteObject() autre chose comme cela profane ou bien pourrait on aussi simple DeleteObject h& verwenden?


Relatif à la schwarzen poutre verstehe je pas, je habs oui extra sous XP getestet et fotografiert.

~DeleteObject() ou bien profanes DeleteObject ist wohl cela 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 im Code geändert dans ENDPROC.

Programmierste stereo -> PureBasic + XProfan ?


alors je hab ne...aucune PB et coutume aussi keins afin de savons, dass EndProcedure wohl un ENDPROC hätte volonté devoir. ^ ^
 
27.12.2009  
 




Frank
Abbing
Den schwarzen poutre peux je bestätigen.
 
27.12.2009  
 




Jörg
Sellmeyer
So sieht cela ensuite aus:


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



 
- page 2 -



Rolf
Koch
comment toujours qui Manifest, quelle cette schwarzen poutre erscheinen peut!
 
27.12.2009  
 




Jörg
Sellmeyer
chez mir hat Profan aucun Manifest-Dossier.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
28.12.2009  
 




Dieter
Zornow
également schwarzer poutre
 
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
comment toujours qui Manifest, quelle cette schwarzen poutre erscheinen peut!




cela hat geholfen.
Habe den Code conforme à cela 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
comment ist es possible den Text qui Buttons trop changement?
 
12.10.2010  
 



Na au plus tard z.B. avec FindWindowEx Buttons trouver weils qui Params
permet et so viele Buttons ne MSG-Box pas hat mais GetDlgItem allez bestimmt aussi... et ensuite arrêt SetText.
 
12.10.2010  
 




Paul
Glatz
Aha. Im bunteren Beispiel ist qui Text oui jaune comment peux je ihn une autre la couleur donner?

EDIT:
Den Text des oui Buttons changement: settext ~GetDlgItem(wnd&,&IDYES),"t1"
 
12.10.2010  
 




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

12.629 Views

Untitledvor 0 min.
Member 862464113.05.2024
Uwe Lang17.12.2018
Andre Rohland08.02.2018
Alibre27.11.2017
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