Español
Foro

SubClassProc Editar Kontextmenü

 

Detlef
Jagolski
¡Hola Comunidad!
,

Yo Subclasse el Editcontrol, sehe Oben en el Kontextmenu a Verändern.

Klappt auch muy bien.
KompilierenMarcaSeparación
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


Aber con el neuen Función SubClassProc Klappt no.
KompilierenMarcaSeparación
Was mache Yo falso,?

Saludo

Detlef

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



[...] 
 
02.06.2008  
 




Detlef
Jagolski
¡Hola If,

el Prozeduren ConTextMenu, MeasureItem y DrawItem son en beiden igual.

Nochwas, si yo el hwnd Menu Subclasse Funktioniert auch sin Problemas.

Como ya he dicho Code 1 Funktioniert sin Problemas
Der otro no
KompilierenMarcaSeparación
 $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


KompilierenMarcaSeparación
 $P+
Conjunto(ErrorLevel,0)
*** GlobalStatements el 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& = Crear(FONT,Arial,14,0,0,0,0)

SubClassProc

    If 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

Declarar appexit%
Declarar Edit&
Conjunto(TrueColor,1)
Ventana de Estilo $003F
Título de la ventana DesignForm
Ventana %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 marca
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

Sinestar encargado appexit%

    WaitInput

    If %key = 2

        appexit%=1

    ElseIf GetFocus(Editar1&)

    ElseIf %key = 4

        Fenstergröße

    ElseIf %key = 5

        Ayuda

    EndIf

Wend

SubClass Edit&, 0

Saludo

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




RGH
¡Hola,
así largo No z.B. auch el XPMENU.INC y otro Archivos, el no para Lieferumfang de XProfan 10 gehören, hier mitlieferst, se niemand Su código testen y en Fehlersuche ir puede. Mit unvollständigen Beispielcodes kann niemand algo anfangen.

Saludo
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
Gracias a todos! Klappt ahora SUPER

Besondern Dank a RGH y Andreas Miethe

Saludo

Detlef

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




Jörg
Sellmeyer
Sieht muy professionell y así nada profano de!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
11.06.2008  
 




Detlef
Jagolski
Löschen Klappt no!
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
12.06.2008  
 



Mach dafür una neues Thema en.
 
12.06.2008  
 




Jac
de
Lad
Und con welchem Code funktioniert el ahora??
 
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
¡Hola Jac,

el ha RGH todavía geändert:

Neu en Subscriptionsversion RC7:
================================
ACHTUNG: ÄNDERUNGEN BEIM SUBCLASSING - Nach eingehenden Tests fueron algunos
kleinere Los cambios notwendig:

- El Función @SubClassMessage() verändert el Status, si el ursprüngliche
Windowsprozedur aufgerufen se oder no, no mehr! Soll ellos no aufgerufen
voluntad, es siempre bastante bewußt Conjunto(WinProc, 0) einzufügen.
Defaultmäßig se, si nichts más angegeben se, el ursprüngliche
Windowsprozedur en el Anschluß a SubClassProc aufgerufen (como bisher)
- Bislang sorgt una interne Abfrage dafür, dass una Message, el während el
SubClassProc aufgerufen se, no erneut el SubClassProc aufruft, como dies en
seltenen Fällen a Problemen führen kann. In diesem Fall se el Message natürlich
no verschluckt, pero a el ursprüngliche Windowsprozedur weitergeleitet.
Diese Abfrage kann nun con @Conjunto(SubClassMode, 1) übergangen voluntad.
Der abgesicherte Modus kann con @Conjunto(SubClassMode, 0) eingestellt voluntad.
- TrackMenu y @TrackMenu() gelten en el Sinne des SubClassings auch como WaitInput.

Saludo

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




Jac
de
Lad
Ah verstehe, el oben genannte Source debería ahora also ir.
 
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
¡Hola Detlef

Kann uno el XPMENU.INC irgendwo invitar? Ist con esta INC auch el Tortengraphic machbar como en deinen Programa Plan-Calc es?

Gruss

Sato
 
Sato Pinto
WIN XP Home
XPROFAN 11
09.07.2008  
 




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

2.981 Views

Untitledvor 0 min.
RudiB.11.09.2022
H.Brill31.08.2021
rquindt27.08.2016
Ernst06.05.2016
Más...

Themeninformationen



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