Die Help ist auch viel zu alt. Dei Subclassfunktionen gibt es erst nativ ab XP.
Mit der Lib aus PBOSL sollte es, zumindest, auf allen NT Versionen laufen.
http://msdn.microsoft.com/library/defau ... bclass.asp
SetWindowCallback in einer DLL aufrufen
Code: Alles auswählen
Enumeration
#window
EndEnumeration
;##################################################################
;#
;#
;#
;##################################################################
Procedure _subclass_cb_(hWnd,uMsg,wParam,lParam,uId,uData)
If uMsg = #WM_ERASEBKGND
Debug "#WM_ERASEBKGND"
ElseIf uMsg = #WM_PAINT
Debug "#WM_PAINT"
ElseIf uMsg = #WM_ACTIVATE
Debug "#WM_ACTIVATE"
ElseIf uMsg = #WM_SIZE
Debug "#WM_SIZE"
EndIf
ProcedureReturn DefSubclassProc(hWnd,uMsg,wParam,lParam)
EndProcedure
;##################################################################
;#
;#
;#
;##################################################################
Procedure Main()
hWnd = OpenWindow(#window,#PB_Ignore,#PB_Ignore,120,70,"leer",#WS_SYSMENU|#WS_SIZEBOX)
SetWindowSubclass(hWnd,@_subclass_cb_(),#window,0)
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndProcedure:Main()
DefSubclassProc ruft automatisch den alten Callback auf.
Weitere Informationen findest du in der Hilfe von PBOSL.
- legion
- Beiträge: 467
- Registriert: 08.10.2006 18:04
- Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
- Wohnort: Wien
- Kontaktdaten:
Vielen herzlichen Dank für deine Mühe ! ! ! ! ! ! ! !
Dein Beispiel funktioniert, aber nur so lange das Fenster im selben Progi ist.
Wenn SetWindowSubclass in der DLL aufgerufen wird ist die
PB -Ereignisschleife im aufrufenden Programm zerstört.
Oder liegt es daran, dass ich SetWindowSubclass und DefSubclassProc
über eine CallFunction aufgerufen habe ?
PB kennt kein SetWindowSubclass_ bzw. DefSubclassProc_ !
Musste die "comctl32.dll" einbinden.
Liebe Grüße
Legion
Dein Beispiel funktioniert, aber nur so lange das Fenster im selben Progi ist.
Wenn SetWindowSubclass in der DLL aufgerufen wird ist die
PB -Ereignisschleife im aufrufenden Programm zerstört.
Oder liegt es daran, dass ich SetWindowSubclass und DefSubclassProc
über eine CallFunction aufgerufen habe ?
PB kennt kein SetWindowSubclass_ bzw. DefSubclassProc_ !
Musste die "comctl32.dll" einbinden.
Liebe Grüße
Legion
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
- legion
- Beiträge: 467
- Registriert: 08.10.2006 18:04
- Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
- Wohnort: Wien
- Kontaktdaten:
Habe soeben entdeckt, dass es seit 08-Apr-2007 eine neue PBOSL LibraryOder liegt es daran, dass ich SetWindowSubclass und DefSubclassProc
über eine CallFunction aufgerufen habe ?
PB kennt kein SetWindowSubclass_ bzw. DefSubclassProc_ !
Musste die "comctl32.dll" einbinden.
gibt ! Damit hat sich das eine Thema erledigt !
Entschuldigung !
Lg. Legion
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
legion hat geschrieben: Habe soeben entdeckt, dass es seit 08-Apr-2007 eine neue PBOSL Library
gibt ! Damit hat sich das eine Thema erledigt !
Entschuldigung !
Lg. Legion
Ich glaube ich spare mir in Zukunft die Antworten, wenn sie sowieso nichtts-soft hat geschrieben:Du kannst SetWindowSubclass() aus PBOSL verwenden, für das Callback in
der DLL, bzw. den Source findeste im Tipps & Tricks Forum (Autor: Edel)
Einfach mal die Beispiele von PBOSL Examples ansehen.
oder nur halbherzig gelesen werden

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- legion
- Beiträge: 467
- Registriert: 08.10.2006 18:04
- Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
- Wohnort: Wien
- Kontaktdaten:
Ich kann deinen Unmut nicht verstehen !Ich glaube ich spare mir in Zukunft die Antworten, wenn sie sowieso nicht oder nur halbherzig gelesen werden
Ich habe festgestellt, dass SetWindowSubclass bzw. DefSubclassProc bei mir nicht funktioniert und habe das gepostet.
Später hab ich bemerkt, dass ich eine alte Version von der PBOSL Library installiert habe und das es seit 08-Apr-2007 eine neue gibt mit der das funktioniert. Also hab ich mich für das erste "unnötige" Posting entschuldigt.
Weshalb sollte ich deswegen deine Unterstützung nur halbherzig gelesen haben? Ich glaub, du hast da was falsch verstanden.
Ich bin für jede Hilfe dankbar !
Lg. Legion
PB 5.71 LTS Windows 10 Pro & Ubuntu 18.04.2 LTS & Linux Mint 19.3
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!
-----------------------------------------------------
Alles ist, wie man glaubt, dass es ist!