Source/ Codesnippets | | | | - 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
|
| | | | |
| | | | | - 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. ^ ^ |
| | | | |
| | Frank Abbing | Den schwarzen poutre peux je bestätigen. |
| | | | |
| | Jörg Sellmeyer | So sieht cela ensuite aus:
|
| | | 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! |
| | | | |
| | 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
| | | | 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 | | | | 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? |
| | | | |
| | | 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. |
| | | | |
| | 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" |
| | | | |
|
Zum QuelltextOptions du sujet | 12.644 Views |
Themeninformationencet Thema hat 9 participant: |