Français
Forum

SubClassProc Éditer Kontextmenü

 

Detlef
Jagolski
allô Community!
,

je Subclasse cela Editcontrol, vois dessus um cela Kontextmenu trop Verändern.

Klappt aussi très bien.
KompilierenMarqueSéparation
Proc EditProc

    Parameters Edit&, Message&, wParam&, lParam&

    Select Message&

        CaseOf ~WM_CONTEXTMENU

        ConTextMenu LoWord(lParam&), HiWord(lParam&)

        CaseOf ~WM_MEASUREITEM

        MeasureItem Edit&, lParam&

        CaseOf ~WM_DRAWITEM

        DrawItem lParam&

    EndSelect

    Return ~CallWindowProc(OldEdit&Proc&, Edit&&, Message&, wParam&, lParam&)

ENDPROC


mais avec qui neuen Funktion SubClassProc Klappt es pas.
KompilierenMarqueSéparation
quoi fais je faux,?

Salut

Detlef

14 kB
Hochgeladen:02.06.2008
Downloadcounter185
Download
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
02.06.2008  
 



[...] 
 
02.06.2008  
 




Detlef
Jagolski
allô Si,

qui Prozeduren ConTextMenu, MeasureItem et DrawItem sommes chez beiden juste.

Nochwas, si je cela hwnd Menu Subclasse Funktioniert aussi sans Probleme.

Comme je le disais Code 1 Funktioniert sans Probleme
l'autre pas
KompilierenMarqueSéparation
 $P+
Set(ErrorLevel,0)
Set(FastMode,1)
*** GlobalStatements der Form
 $H C:PROGRAMMEXPROFAN10INCLUDEWINDOWS.PH
 $H C:PROGRAMMEXPROFAN10INCLUDEMESSAGES.PH
 $H C:PROGRAMMEXPROFAN10INCLUDESHELLAPI.PH
 $H C:PROGRAMMEXPROFAN10INCLUDESTRUCTS.PH
 $H C:PROGRAMMEXPROFAN10INCLUDECOMMCTRL.PH
 $H C:PROGRAMMEXPROFAN10INCLUDEWIND.PH
 $I C:PROGRAMMEPRFELLOWLIBXPMENU.INC
Def EnableMenuItem(3) !USER32,EnableMenuItem
var hOldFont& = Create(FONT,Arial,14,0,0,0,0)

Proc EditProc

    Parameters Edit&, Message&, wParam&, lParam&

    Select Message&

        CaseOf ~WM_CONTEXTMENU

        ConTextMenu LoWord(lParam&), HiWord(lParam&)

        CaseOf ~WM_MEASUREITEM

        MeasureItem Edit&, lParam&

        CaseOf ~WM_DRAWITEM

        DrawItem lParam&

    EndSelect

    Return ~CallWindowProc(OldEdit&Proc&, Edit&&, Message&, wParam&, lParam&)

EndProc

Declare appexit%
Declare Edit&
Set(TrueColor,1)
WindowStyle $003F
WindowTitle DesignForm
Window %maxX + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont MS Sans Serif,13,0,0,0,0
CreateImageList ICONXP32.DLL
SetMenuBitmap SP32.DLL, FSSP
SetCheckedImage 116
SetMenuStandardColors
var Rueckgaengig$    = Rückgängig
var Ausschneiden$    = Ausschneiden
var Kopieren$        = Kopieren
var Einfuegen$       = Einfügen
var Loeschen$        = Löschen
var AllesMarkieren$  = Alles markieren
var hConTextMenu& = ~CreatePopupMenu()
~AppendMenu(hConTextMenu&, ~MF_STRING,1000,Addr(Rueckgaengig$))
~AppendMenu(hConTextMenu&, ~MF_SEPARATOR,101,0)
~AppendMenu(hConTextMenu&, ~MF_STRING,1002,Addr(Ausschneiden$))
~AppendMenu(hConTextMenu&, ~MF_STRING,1003,Addr(Kopieren$))
~AppendMenu(hConTextMenu&, ~MF_STRING,1004,Addr(Einfuegen$))
~AppendMenu(hConTextMenu&, ~MF_STRING,1005,Addr(Loeschen$))
~AppendMenu(hConTextMenu&, ~MF_SEPARATOR,106,0)
~AppendMenu(hConTextMenu&, ~MF_STRING,1007,Addr(AllesMarkieren$))
ChangeMenuItem hConTextMenu&,0,3,hOldFont&
ChangeMenuItem hConTextMenu&,1,-1,-1
ChangeMenuItem hConTextMenu&,2,0,hOldFont&
ChangeMenuItem hConTextMenu&,3,1,hOldFont&
ChangeMenuItem hConTextMenu&,4,2,hOldFont&
ChangeMenuItem hConTextMenu&,5,5,hOldFont&
ChangeMenuItem hConTextMenu&,6,-1,-1
ChangeMenuItem hConTextMenu&,7,-1,hOldFont&
Edit&=CreateEdit(%hwnd,,125,90,121,21)
OldEdit&Proc& = ~SetWindowLong(Edit&,~GWL_WNDPROC,ProcAddr(EditProc,4))
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    WaitInput

    If %key = 2

        appexit%=1

    ElseIf GetFocus(Edit1&)

    ElseIf %key = 4

        Fenstergröße

    ElseIf %key = 5

        Hilfe

    EndIf

Wend


KompilierenMarqueSéparation
 $P+
Set(ErrorLevel,0)
*** GlobalStatements qui forme
 $H C:PROGRAMMEXPROFAN10INCLUDEWINDOWS.PH
 $H C:PROGRAMMEXPROFAN10INCLUDEMESSAGES.PH
 $H C:PROGRAMMEXPROFAN10INCLUDESHELLAPI.PH
 $H C:PROGRAMMEXPROFAN10INCLUDESTRUCTS.PH
 $H C:PROGRAMMEXPROFAN10INCLUDECOMMCTRL.PH
 $H C:PROGRAMMEXPROFAN10INCLUDEWIND.PH
 $I C:PROGRAMMEPRFELLOWLIBXPMENU.INC
Def EnableMenuItem(3) !USER32,EnableMenuItem
var hOldFont& = Créer(FONT,Arial,14,0,0,0,0)

SubClassProc

    Si SubClassMessage(Edit&, ~WM_CONTEXTMENU)

        ConTextMenu LoWord(&sLParam), HiWord(&sLParam)

    ElseIf SubClassMessage(Edit&, ~WM_MEASUREITEM)

        MeasureItem Edit&, &sLParam

    ElseIf SubClassMessage(Edit&, ~WM_DRAWITEM)

        DrawItem &sLParam

    EndIf

ENDPROC

Déclarer appexit%
Déclarer Edit&
Set(TrueColor,1)
Fenêtre Style $003F
Titre de la fenêtre DesignForm
Fenêtre %maxx + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont MS Sans Serif,13,0,0,0,0
CreateImageList ICONXP32.DLL
SetMenuBitmap SP32.DLL, FSSP
SetCheckedImage 116
SetMenuStandardColors
var Rueckgaengig$    = Rückgängig
var Ausschneiden$    = Ausschneiden
var Kopieren$        = Kopieren
var Einfuegen$       = insérer
var Loeschen$        = Effacer
var AllesMarkieren$  = Alles markieren
var hConTextMenu& = ~CreatePopupMenu()
~AppendMenu(hConTextMenu&, ~MF_STRING,1000,Addr(Rueckgaengig$))
~AppendMenu(hConTextMenu&, ~MF_SEPARATOR,101,0)
~AppendMenu(hConTextMenu&, ~MF_STRING,1002,Addr(Ausschneiden$))
~AppendMenu(hConTextMenu&, ~MF_STRING,1003,Addr(Kopieren$))
~AppendMenu(hConTextMenu&, ~MF_STRING,1004,Addr(Einfuegen$))
~AppendMenu(hConTextMenu&, ~MF_STRING,1005,Addr(Loeschen$))
~AppendMenu(hConTextMenu&, ~MF_SEPARATOR,106,0)
~AppendMenu(hConTextMenu&, ~MF_STRING,1007,Addr(AllesMarkieren$))
ChangeMenuItem hConTextMenu&,0,3,hOldFont&
ChangeMenuItem hConTextMenu&,1,-1,-1
ChangeMenuItem hConTextMenu&,2,0,hOldFont&
ChangeMenuItem hConTextMenu&,3,1,hOldFont&
ChangeMenuItem hConTextMenu&,4,2,hOldFont&
ChangeMenuItem hConTextMenu&,5,5,hOldFont&
ChangeMenuItem hConTextMenu&,6,-1,-1
ChangeMenuItem hConTextMenu&,7,-1,hOldFont&
Edit&=CreateEdit(%hwnd,,125,90,121,21)
SubClass Edit&, 1
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    WaitInput

    Si %clé = 2

        appexit%=1

    ElseIf GetFocus(Éditer1&)

    ElseIf %clé = 4

        Fenstergröße

    ElseIf %clé = 5

        Aider

    EndIf

Wend

SubClass Edit&, 0

Salut

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




RGH
Salut,
so longtemps Du pas z.B. aussi qui XPMENU.INC et autre Fichiers, qui pas zum Livraison de XProfan 10 gehören, ici mitlieferst, wird niemand Deinen Code testen et sur Fehlersuche aller peut. avec unvollständigen Beispielcodes peux niemand quelque chose anfangen.

Salut
Roland
 
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
02.06.2008  
 




Detlef
Jagolski
merci à alle! Klappt maintenant SUPER

Besondern Dank à RGH et Andreas Miethe

Salut

Detlef

145 kB
Hochgeladen:11.06.2008
Downloadcounter208
Download
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
11.06.2008  
 




Jörg
Sellmeyer
Sieht très professionell et so gar pas profan aus!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.06.2008  
 




Detlef
Jagolski
Effacer Klappt pas!
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
12.06.2008  
 



Mach pour un nouveau Thema sur.
 
12.06.2008  
 




Jac
de
Lad
et avec welchem Code funktioniert cela maintenant??
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
08.07.2008  
 




Detlef
Jagolski
allô Jac,

cela hat RGH encore geändert:

récente dans Subscriptionsversion RC7:
================================
ACHTUNG: ÄNDERUNGEN BEIM SUBCLASSING - Pour eingehenden Tests wurden quelques
kleinere Changements notwendig:

- qui Funktion @SubClassMessage() modifié den Status, si qui ursprüngliche
Windowsprozedur aufgerufen wird ou bien pas, pas plus! Soll vous pas aufgerufen
volonté, ist toujours entier bewußt Set(WinProc, 0) einzufügen.
Defaultmäßig wird, si rien d'autre angegeben wird, qui ursprüngliche
Windowsprozedur im Anschluß à SubClassProc aufgerufen (comment bisher)
- Bislang sorgt une interne Abfrage pour, dass une Message, qui au cours de qui
SubClassProc aufgerufen wird, pas erneut qui SubClassProc aufruft, là ca dans
seltenen Fällen trop Problemen mener peux. dans diesem le cas wird qui Message naturellement
pas verschluckt, mais à qui ursprüngliche Windowsprozedur weitergeleitet.
cet Abfrage peux eh bien avec @Set(SubClassMode, 1) übergangen volonté.
qui abgesicherte Modus peux avec @Set(SubClassMode, 0) eingestellt volonté.
- TrackMenu et @TrackMenu() gelten im Sinne des SubClassings aussi comme WaitInput.

Salut

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




Jac
de
Lad
Ah verstehe, qui dessus genannte Source devrait maintenant alors aller.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
08.07.2008  
 




Sato
Pinto
allô Detlef

peux on qui XPMENU.INC irgendwo magasin? Ist avec cet INC aussi qui Tortengraphic machbar comme dans deinen Programme plan-Calc steht?

Gruss

Sato
 
Sato Pinto
WIN XP Home
XPROFAN 11
09.07.2008  
 




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

3.006 Views

Untitledvor 0 min.
RudiB.11.09.2022
H.Brill31.08.2021
rquindt27.08.2016
Ernst06.05.2016
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