Français
Forum

Erledigt: CBN_SelChange per SubClassProc intercepter

 

Georg
Hovenbitzer
allô zusammen,

je sitze la fois wieder à une Problem et viens pas plus.
je serait volontiers qui Notification CBN_SelChange einer Combo Box dans einer SubClassProc intercepter.
jusqu'à dato habe je es toujours avec qui EasyVENT DLL gemacht, serait cet mais volontiers omettre.
aucun Alternative ist es ca per Usermessages ~WM_COMMAND trop lösen, là je pour trop viel umbauen devrait.
Alternativ pourrait on naturellement une Boucle bricoler qui pour dem sortir de de Waitinput prüft si qui sélection sich geändert hat.
Mir wäre mais une directe Possibilité lieber.

si quelqu'un une Tipp hätte serait je mich freuen.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
05.02.2010  
 



tu peux cela Contrôle unterbrechnungsfrei et sûrement avec XPSE subclassen per:
//Natives Subclassing
declare meinhandle.owp&,meinhandle&
cls
meinhandle&=create(...
meinhandle.owp&=setWindowLong(meinhandle&,gwl_wndProc,procaddr(meinhandle.wndProc,4))
waitinput
end

nProc meinhandle.wndProc

    Paramètres wnd&,msg&,wp&,lp&
    global owp&

    si msg&=CBN_SelChange//wm_command

        ...

    endif

    return callWindowProc(owp&,wnd&,msg&,wp&,lp&)

endproc

ou bien Hauptfenster:  [...]  .
 
05.02.2010  
 




Georg
Hovenbitzer
allô iF,

vielen Dank pour qui schnelle Antwort.
j'ai es la fois versucht dans reinem Profan nachzustellen, sans Erfolg.

si Je l' Code starte bleibt alles hängen et on muss den Task abschießen.
quoi fais je ici faux ?
 
P.S.: Es fehlte FastMode avec cela es fonctionne, ist mais malheureusement pas qui Solution.
je viens pas à qui Notifikation ran.
 $H Messages.ph
 $H Windows.ph
Déclarer FPArt&, OWProc&

Proc SelChange

    Paramètres Wnd&, Msg&, wParam&, lParam&

    Si Msg& = ~CBN_SelChange

        Imprimer @GetText $(FPArt&)

    EndIf

    Retour ~CallWindowProc(OWProc&,Wnd&,Msg&,wParam&,lParam&)

ENDPROC

@Set("Fastmode",1)
Fenêtre Style 2 + 8 + 16 + 128 + 256 + 512
Fenêtre 0,0-1024,768
FPArt& = @Créer("ChoiceBox",%hWnd,1,100,100,280,150)

WhileLoop 1, 10, 1

    @AddStrings(FPArt&,"Test " + @Str$(&Boucle))

Endwhile

OWProc& = ~SetWindowLong(FPArt&,~GWL_WNDPROC,@ProcAddr(SelChange,4))

WhileNot %Key = 2

    WaitInput

Endwhile

Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
05.02.2010  
 




Rolf
Koch
la hâte Du aussi sur Set("Fastmode",1) gesetzt?
 
05.02.2010  
 




Georg
Hovenbitzer
Ist mir aussi justement Aufgefallen, ca fehlte.

mais ca ist malheureusement pas qui Solution, qui Notification CBN_SelChange bewirkt malheureusement rien.
quelqu'un encore une Tipp
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
05.02.2010  
 



Georg Hovenbitzer, Beitrag=55989, Zeitpunkt=05.02.2010
allô iF,

vielen Dank pour qui schnelle Antwort.
j'ai es la fois versucht dans reinem Profan nachzustellen, sans Erfolg.


je hab Dir déjà cela Profanste hingeschrieben et une FastMode nécessaire es (zum Glück) aussi pas.
 
05.02.2010  
 




Georg
Hovenbitzer

Hab qui Solution trouvé
qui qui MSDN richtig lesen peux ist bien sûr im vorteil.
 $H Messages.ph
 $H Windows.ph
Déclarer FPArt&, OWProc&

Proc SelChange

    Paramètres Wnd&, Msg&, wParam&, lParam&

    Si ((Msg& = ~WM_COMMAND) AND (@HiWord(wParam&) = ~CBN_SelChange))

        Localiser 1,1
        Imprimer @GetText $(FPArt&)

    EndIf

    Retour ~CallWindowProc(OWProc&,Wnd&,Msg&,wParam&,lParam&)

ENDPROC

@Set("Fastmode",1)
Fenêtre Style 2 + 8 + 16 + 128 + 256 + 512
Fenêtre 0,0-1024,768
FPArt& = @Créer("ChoiceBox",%hWnd,1,100,100,280,150)

WhileLoop 1, 10, 1

    @AddStrings(FPArt&,"Test " + @Str$(&Boucle))

Endwhile

OWProc& = ~SetWindowLong(FPArt&,~GWL_WNDPROC,@ProcAddr(SelChange,4))

WhileNot %Key = 2

    WaitInput

Endwhile

Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
05.02.2010  
 



Dir ist déjà bien sûr, dass cette Code ProcAddr so utilise, dass cela Programme absturzgefährtet ist? fais Du mais aus Proc SelChange simple nProc SelChange, ensuite ist es 100% sûrement et Du brauchst ensuite aussi keinen FastMode plus.
 
05.02.2010  
 




Detlef
Jagolski
So fais je cela!! Klappt toujours.
ElseIf SubClassMessage(DesignForm&, ~WM_COMMAND)

Select &sLParam

    CaseOf DlgChoiceBox1&

    Si HiWord(&sWParam) = ~CBN_SELCHANGE

        SetMenuItem 5003
        Set("WinProc",0)

    EndIf

    CaseOf Dlg2ChoiceBox1&

    Si HiWord(&sWParam) = ~CBN_SELCHANGE

        SetMenuItem 9002
        Set("WinProc",0)

    EndIf

EndSelect

 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
05.02.2010  
 




Georg
Hovenbitzer
là était je trop lente
und dir aussi sans FastMode et SubProc.
 $H Messages.ph
 $H Windows.ph
Déclarer FPArt&, OWProc&

SubClassProc

    Si (@SubClassMessage(FPArt&,~WM_COMMAND) AND (@HiWord(&sWParam) = ~CBN_SelChange))

        Localiser 1,1
        Imprimer @GetText $(FPArt&)

    EndIf

ENDPROC

Fenêtre Style 2 + 8 + 16 + 128 + 256 + 512
Fenêtre 0,0-1024,768
FPArt& = @Créer("ChoiceBox",%hWnd,1,100,100,280,150)

WhileLoop 1, 10, 1

    @AddStrings(FPArt&,"Test " + @Str$(&Boucle))

Endwhile

SubClass FPArt&,1

WhileNot %Key = 2

    WaitInput

Endwhile

SubClass FPArt&,0
Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
05.02.2010  
 



répondre


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

9.413 Views

Untitledvor 0 min.
Rainer Hoefs10.06.2023
H.Brill05.10.2020
Jörg Sellmeyer16.06.2020
Andreas Koch03.01.2012

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