Italia
Foro

Dialogfenster wie %hwnd

 
- Page 1 -



GDL
Ciao,

ist es possibile, dass sich ein so erzeugtes Fenster

ofenster&=create(window,%hwnd,Oberflächengestaltung,0,0,%maxx,%maxy)

genauso verhält wie ein %hwnd,quasi ein 2tes Hauptfenster.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
03.10.2006  
 



 
- Page 1 -



GDL
Hallo Andreas,

ich bekomme es auf einem Unterfenster nicht hin. Auf %hwnd klappts aber einwandfrei.
KompilierenMarkierenSeparieren
Def PtInRect(3) !"USER32","PtInRect"

Proc CheckMouse

    Parameters hw&,x%,y%,lang&[onummer&],breit&[onummer&]
    Dim rect#,16
    Dim rectpt#,8
    Long rect#,0=x%
    Long rect#,4=y%
    Long rect#,8=lang&[onummer&]
    Long rect#,12=breit&[onummer&]
    GetCursorPos(rectpt#)
    ScreenToClient(hw&,rectpt#)

    If Neq(PtInRect(rect#,Long(rectpt#,0),Long(rectpt#,4)),0)

        result%=1

    EndIf

    Dispose rect#
    Dispose rectpt#

EndProc


Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
05.10.2006  
 



Hallo Georg...

...ist noch nicht ganz perfekt...
KompilierenMarkierenSeparieren
Def @GetCursorPos(1) !"USER32","GetCursorPos"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
Def @Ptinrect(3) !"USER32","PtInRect"
Def @WaitMessage(0) !"USER32","WaitMessage"
Declare Rect#,Rectpt#,Dialog&,Message#
Windowstyle 31
LET Dialog&=@CreateWindow(%Desktop,"Mausklick auf Dialog",30,30,300,300)
Usecursor 0

While %Menuitem<>-2

    @WaitMessage()
    Startpaint Dialog&
    Rectangle 30,30-60,60
    Endpaint

    IF @Checkmouse(Dialog&,30,30,60,60)=1

        IF %Message=514

            @messagebox("Mit linker Maustaste ins schwarze getroffen!","Treffer!",64)

        endif

    endif

    Usecursor 0

wend

Proc Checkmouse

    Parameters Hw&,X%,Y%,Lang&,Breit&
    Declare Result&
    Dim Rect#,16
    Dim Rectpt#,8
    Long Rect#,0=X%
    Long Rect#,4=Y%
    Long Rect#,8=Lang&
    Long Rect#,12=Breit&
    @Getcursorpos(Rectpt#)
    @Screentoclient(Hw&,Rectpt#)
    LET Result&=@Ptinrect(Rect#,@long(Rectpt#,0),@long(Rectpt#,4))
    Dispose Rect#
    Dispose Rectpt#
    Return Result&

Endproc

 
06.10.2006  
 




GDL
@Andreasanke.

Aber erkläre mir bitte warum man auf einem Dialogo con waitinput nicht weiterkommt.Oder sollte man waitinput nur in Ausnahmefällen nutzen?

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
06.10.2006  
 



[quote:10c8e47fce=GDL]Aber erkläre mir bitte warum man auf einem Dialogo con waitinput nicht weiterkommt.[/quote:10c8e47fce]
...an dem liegen, was Waitinput neben dem Aufrufen der API MsgWaitForMultipleObjects noch so alles tut - kann dir wohl nur Roland beantworten.

Saluto

Andreas
 
07.10.2006  
 




GDL
@ Andreas,

klappt wunderbar per Einklickabfrage.Für ständige Abfrage nehm ich wie bereits früher
schonmal gehabt.

@Getasynckeystate(2)<>0.

Da @Getasynckeystate(2)<>0 mit waitinput nicht geht und ich auch Buttons abfragen möchte verwendete ich

settimer 1
waitinput
killtimer

Verstehe zwar nicht warum es dann geht, aber hauptsache es geht.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
08.10.2006  
 




Ralph
Theobald
Hallo ,

kann mir jemand erklären, wie ihr rausgefunden habt, daß die
Api Funktion PTINRECT drei Parameter hat.

Thomas Hölzer hat in Prffellow ( Dlgcheckarea) einen ähnlichen Code
benutzt. In der Win32 und im SDK steht PTinRect mit zwei Parametern:
1. Struktur : Rechteckkoordinaten Fenster
2. Struktur: Mauskoordinaten
Oder habe ich was übersehen ?

Saluto Ralph

3 kB
Hochgeladen:16.02.2007
Downloadcounter88
Download
 
Xprofan 10 , AMD Athlon 3000+, 1GB
16.02.2007  
 



[...] 
 
16.02.2007  
 



 
- Page 2 -



RGH
Ralph Theobald
Hallo ,

kann mir jemand erklären, wie ihr rausgefunden habt, daß die
Api Funktion PTINRECT drei Parameter hat.

Thomas Hölzer hat in Prffellow ( Dlgcheckarea) einen ähnlichen Code
benutzt. In der Win32 und im SDK steht PTinRect mit zwei Parametern:
1. Struktur : Rechteckkoordinaten Fenster
2. Struktur: Mauskoordinaten
Oder habe ich was übersehen ?

Saluto Ralph


Hallo Ralph,
der erste Parameter ist ein Zeiger auf eine Struktur (= 32 Bit) und der zweite Parameter direkt die Struktur. Die Struktur POINT besteht aus zwei 32-Bit Werten per die Koordinaten und ist somit 64 Bit grande. Anstelle der Struktur können auch die zwei Koordinaten je als Longint (32 Bit) trasferimento werden. Das sind dann auch wieder 64 Bit und alles ist im Lot! In XProfan ist es am Einfachsten, per den ersten Parameter eine Strukturvariable zu nutzen und per die Koordinaten zwei LongInts.
Saluto
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
16.02.2007  
 




RGH
Andreas Hötker
GDL
Aber erkläre mir bitte warum man auf einem Dialogo con waitinput nicht weiterkommt.


...an dem liegen, was Waitinput neben dem Aufrufen der API MsgWaitForMultipleObjects noch so alles tut - kann dir wohl nur Roland beantworten.

Saluto

Andreas


Hallo Andreas,
die von Dir genannte API kommt in Waitinput überhaupt nicht vor. WAITINPUT gibt es schon seit Profan 1.0 ... und da gab es diese API-Fuktion noch gar nicht.

Für den API-FAchmann: Was passiert in WaitInput? Hier das Delphi-Listing:
KompilierenMarkierenSeparieren
In aller Kürze: Es werden zunächste einige globalen Flags zurückgesetzt und dann solange der MessageLoop aufgerufen, bis eines der abgefragten Ereignisse eingetreten ist. Diese globalen Flags werden von den Fensterprozeduren, teils abhängig vom jeweiligen Stil, gesetzt. Auch wenn es diese Funktionalität schon seit Version 1 gibt, wurde sie doch im Laufe der Zeit verbessert und verfeinert, zuletzt in Version 10.

API-Aufrufe gibt es naturalmente in MessageLoop:
KompilierenMarkierenSeparieren
(Die erste Zeile hinter dem Begin diente dazu, F1 in Editfeldern abzufragen, bevor es mit Version 10 die Hotkeys gab. Sie dient, wie vieles andere, lediglich der Kompatibilität zu früheren Versionen.)

Saluto
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
16.02.2007  
 



Mmh, einfach eine Schleife also. Besten Dank.
 
16.02.2007  
 




Ralph
Theobald
Hallo Roland ,hallo If

Danke per eure Mühe.

The PtInRect function determines whether the specified point lies within the specified rectangle. A point is within a rectangle if it lies on the left or top side or is within all four sides. A point on the right or bottom side is considered outside the rectangle.

BOOL PtInRect(

CONST RECT *lprc,// address of structure with rectangle
POINT pt // structure with point
);
Parameters

lprc

Points to a RECT structure that contains the specified rectangle.

pt

Specifies a POINT structure that contains the specified point.

Return Value

If the specified point lies within the rectangle, the return value is TRUE.
If the function fails, the return value is FALSE. To get extended error information, call GetLastError.

Der Aufruf PtInRect(rect#,point#) funktioniert nicht, war wohl ein Verständnisproblem
meinerseits.
Ich dachte der Zugriff auf die Strukturelemente erfolgt immer circa die Adresse.

Saluto Ralph
 
Xprofan 10 , AMD Athlon 3000+, 1GB
17.02.2007  
 




Frank
Abbing
Mach dir nix daraus, Ralph. Bin auch schonmal darüber gestolpert .
 
17.02.2007  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.772 Views

Untitledvor 0 min.
Thomas Freier08.02.2024
H.Brill20.05.2023
RudiB.15.04.2022
AndreasS01.12.2018
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie