Español
Wünsche y Sugerencias

Wunsch: Messagebox erweitern

 

E.T.
Eben benötigt:
Messagebox sólo con el "Abbrechen" - Button (así como Art Referencia-Box)
Bisher posible:


0 - OK (~MB_OK)
1 - OK Alto (~MB_OKCANCEL)
2 - Alto Wiederholen Ignorieren (~MB_ABORTRETRYIGNORE)
3 - Sí Nein Alto (~MB_YESNOCANCEL)
4 - Sí Nein (~MB_YESNO)
5 - Wiederholen Alto (~MB_RETRYCANCEL)


Hm, ~MB_CANCEL gibts sí wohl (lt. Konstantin Opel) no, aber vlt. ha sí alguien dafür 'ne Solución ?? In diesem zusammenhang dürfte nat. el Prog no en el M-Box warten pero debería más laufen. Dafür debería una continuación aber otra vez el Handle el M-Box wissen, en esta abzufragen...

Hintergrund:
Programa liest Daten una, Ventana principal se "deaktiviert". Exactamente en diesem Fall debería una M-Box con el Referencia "Programm liest Daten ein" (oder algo como) erscheinen, welche el Nutzer el Möglichkeit son, todos abzubrechen.

Oder restos como sólo, el Referencia-Ventana komplett incluso a redactar ??
 
XProfan X2
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...
29.06.2012  
 




RGH
Was spricht dagegen, con "Ok" a bestätigen, el Referencia gelesen a haben?
Das son zumindest el de Windows bereitgestellten Messageboxtypen.

Si el Programa weiterlaufen se, musst Usted el Hinwweisfenster eh' incluso redactar (oder una eigenen Prozess uso).

Saludo
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
29.06.2012  
 



... oder una eigenen Hilo uso oder _ohne eigenen Hilo con el

SetTimer-API una APC en el Hauptthread injizieren.

Schaue Usted auch veces el Incluir asyncMsgBox.inc a:  [...] 

Aus el Okrea-Code Yo grad:
FindWindowExA(messagebox.hWnd&,0,"BUTTON","OK")
rausgefitzelt -

así ermittelt al Handle des OK-Buttons si al MessageBox-Fensterhandle sabe.

Si usted así no weiterkommst entonces simplemente otra vez informe.
 
29.06.2012  
 



Hihi,

schauma: Descargar
externer Descargar



 {$cleq}
const 	asyncMessageBox.Message=1025
declarar	asyncMessageBox.C&
decimals 0

proc asyncMessageBox

    parámetros wnd&,s$,tit$,mode&
    add asyncMessageBox.C&,1
    var h&=globalAlloc(gPTR,24)
    long h&,0=addr(s$),addr(tit$),mode&,wnd&,create("text",hWnd,"",0,0,0,0),asyncMessageBox.C&
    setWindowLong(long(h&,16),gwl_userdata,setWindowLong(long(h&,16),gwl_wndProc,procaddr(asyncMessageBox.wndProc,4)))
    asyncMessageBox.createThread(h&)

    mientras que long(h&,0)

        sleep 10

    wend

    whileloop 100

    wend

    var msg&=long(h&,16)
    mensajes de los usuarios asyncMessageBox.Message
    globalFree(h&)
    var msgboxWnd&=findWindow("."+str$(hWnd)+"."+str$(asyncMessageBox.C&))
    settext msgboxWnd&,tit$
    volver msgboxWnd&

ENDPROC

nProc asyncMessageBox.createThread

    parámetros h&
    createThread(0,0,procAddr(asyncMessageBox.thread,1),h&,0,0)

ENDPROC

nProc asyncMessageBox.wndProc

    Parámetros wnd&,msg&,wp&,lp&

    if msg&=asyncMessageBox.Message

        sendMessage(hWnd,asyncMessageBox.Message,wnd&,lp&)
        destroyWindow(wnd&)
        volver 0

    endif

    volver callWindowProc(getWindowLong(wnd&,gwl_userData),wnd&,msg&,wp&,lp&)

ENDPROC

nproc asyncMessageBox.thread

    parámetros h&
    var s$=cadena$(long(h&,0),0)
    var tit$=cadena$(long(h&,4),0)
    var mode&=long(h&,8)
    var wnd&=long(h&,12)
    var trd&=long(h&,16)
    long h&,0=0
    sendMessage(trd&,asyncMessageBox.Message,0,messageBox(wnd&,s$,"."+str$(hWnd)+"."+str$(long(h&,20)),mode&))
    volver 0

ENDPROC

cls
var myMsgBoxWnd&=asyncMessageBox(desktop,"Huhu","Titel",mb_ok)
settext findWindowEx(myMsgBoxWnd&,0,"BUTTON","OK"),"&Abbrechen"

mientras que 1

    waitinput

wend

end

Oder hiermit zählts hübsch runter y schließt se selbständig:
cls
var myMsgBoxWnd&=asyncMessageBox(desktop,"Huhu","Titel",mb_ok)
var btn&=findWindowEx(myMsgBoxWnd&,0,"BUTTON","OK")
var c&=10

mientras que (c&+2) and isWindow(myMsgBoxWnd&)

    waitinput 1000
    settext btn&,"&Abbrechen ["+str$(c&)+"]"
    sub c&,1

wend

caso isWindow(myMsgBoxWnd&) : sendMessage(myMsgBoxWnd&,wm_close,0,0)
imprimir "fertsch"

mientras que 1

    waitinput

wend

end

1.168 kB
Hochgeladen:29.06.2012
Ladeanzahl200
Descargar
38 kB
Hochgeladen:29.06.2012
Ladeanzahl163
Descargar
 
29.06.2012  
 



Und hier veces rein por Externo:
'{$ Cleq}
decimals 0
cls
var myTimer&=external("user32","SetTimer",0,0,100,procAddr(myMessageBoxAPCProc,4))
imprimir messageBox("Text","."+str$(%hWnd)+".¡Hola Welt!",0)
waitinput
end

proc myMessageBoxAPCProc

    parámetros wnd&,msg&,id&,tme&
    var s$="."+str$(%hWnd)+"."
    var msgboxWnd&=findWindow(s$)
    casenot msgboxWnd& : volver
    external("user32","KillTimer",0,myTimer&)
    settext msgboxWnd&,del$(getText$(msgboxWnd&),1,len(s$))
    var btn&=external("user32","FindWindowExA",msgboxWnd&,0,"BUTTON","OK")
    casenot btn& : volver
    setText btn&,"&Abbrechen"

endProc


Damit el así geschrieben aber wiederum 100%ig (en lugar de 99%ig) "absturzsicher" es,
debería algo como Roland nativ einbauen porque una APC en una interpretierte XProfan-
Proc kann siempre abstürzen besonders desto komplexer y größer el Programa es.
 
29.06.2012  
 



Respuesta


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

5.678 Views

Untitledvor 0 min.
AndreasS13.02.2019
Peter Max Müller14.10.2017
Tango14.07.2017
Ernst14.06.2016
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

iF (3x)
RGH (1x)
E.T. (1x)


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