Italia
Foro

Tabchanged bei einem in einen Tab-Control plazierten Tab-Control

 
- Page 1 -



Julian
Schmidt
Ciao,
ich versuche gerade Tabchanged bei einem in einem Tab-Control plazierten Tab-Control abzufragen. Doch irgendwie misslingt es.
Woran liegt das?
KompilierenMarkierenSeparieren
Def SetActiveTab(2) SendMessage(&(1),$0130C,&(2),0)
cls
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", hTab1&, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)

whileloop 4

    InsertTab(hTab1&, &loop+1, "Tab"+Str$(&loop+1))
    InsertTab(hTab2&, &loop+1, "Tab"+Str$(&loop+1))

Endwhile

while 1

    waitinput

    if TabChanged(hTab1&)

        SetActiveTab(hTab2&,GetActiveTab(hTab1&))

    elseif TabChanged(hTab2&)

        SetActiveTab(hTab1&,GetActiveTab(hTab2&))

    EndIf

Endwhile


LG

Julian57
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.01.2012  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


Julian
Schmidt
Danke schön an alle die zu diesen Thread etwas beigetragen haben.
Es funktioniert Perfekt
KompilierenMarkierenSeparieren
Def SetActiveTab(2) SendMessage(&(1),$0130C,&(2),0)
cls
Usermessages 16
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", hTab1&, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)
Subclass %hwnd,1

whileloop 4

    InsertTab(hTab1&, &loop+1, "Tab"+Str$(&loop+1))
    InsertTab(hTab2&, &loop+1, "Tab"+Str$(&loop+1))

Endwhile

while 1

    waitinput

    if TabChanged(hTab1&)

        SetActiveTab(hTab2&,GetActiveTab(hTab1&))

    elseif %umessage=16

        Subclass %hwnd,0
        end

    EndIf

Endwhile

SubClassProc

    If SubClassMessage(%hwnd, $004E)

        If long(&sLParam,0) = hTab2&

            If long(&sLParam,8)  =  0-550 - 1

                SetActiveTab(hTab1&,GetActiveTab(hTab2&))

            EndIf

        EndIf

        Set("WinProc",1)

    EndIf

EndProc

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
07.01.2012  
 



Das Elterntabcontrol leitet die Nachricht wohl vom Kindtabcontrol nicht an das hWnd,

wenn Du das möchtest dann könntest das Elterntabcontrol dazu subclassen.

Optimal nichts auf Tabcontrols ablegen sondern auf Dialogen/ Fenstern.
 
06.01.2012  
 




Julian
Schmidt
@iF
Ich brauche per mein aktuelles Projekt auf jeden Fall zwei Tab-Controls.
Deswegen wäre Subclassing schonmal ein Lösungsansatz.

Ein Alternativer Lösungsansatz von mir wäre den zweiten Tab-Control auf einen extra Dialog ala
KompilierenMarkierenSeparieren
var class$="#32770"
var title$=""
External("USER32","CreateWindowExA",0,addr(class$),addr(title$),$40000000,10,20, 100, 50,%hwnd,0,%hinstance,1000)re>

zu legen. Würde Tab-Changed dann per den zweiten Tab-Control funktionieren?

Kannst du das mit den Subclassing proggen?
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.01.2012  
 



Vlt. einfach wie im Beispiel aus der Hilfedatei in dem auch kein Control (auch kein Tab-Control) auf einem Tab-Control abgelegt wird -

erzeuge einfach beide Tab-Controls auf ein und dem selben Dialog/ Fenster.
 
06.01.2012  
 




Julian
Schmidt
iF (06.01.12)
Vlt. einfach wie im Beispiel aus der Hilfedatei in dem auch kein Control (auch kein Tab-Control) auf einem Tab-Control abgelegt wird -
erzeuge einfach beide Tab-Controls auf ein und dem selben Dialog/ Fenster.


Hab ich schon längst probiert. Dann wird nur das 1ste angezeigt.
KompilierenMarkierenSeparieren
cls
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", %hwnd, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)

while 1

Endwhi
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.01.2012  
 




Detlef
Jagolski
Hallo!
KompilierenMarkierenSeparieren
 $P+
SetErrorLevel 0
 $H WINDOWS.PH
 $H MESSAGES.PH
 $H STRUCTS.PH
 $H SHELLAPI.PH
 $H COMMCTRL.PH
 $I TABCONTROL.INC
Struct NMHDR = ~NMHDR

Proc OnApplicationExit

    DeleteObject TextFont1&
    Dispose pnmh#
    Dispose TBC1#
    Dispose TBC2#
    SubClass %hwnd,0
    SubClass PageControl1_Sheet1&,0

EndProc

Proc OnApplicationInit

EndProc

OnApplicationInit
Declare appexit%
Declare pnmh#
Declare TBC1#
Declare TBC2#
Declare PageControl1_Sheet1&
Declare PageControl1_Sheet2&
Declare PageControl1_Sheet3&
Declare PageControl1_Sheet4&
Declare PageControl1_Sheet5&
Declare PageControl2_Sheet1&
Declare PageControl2_Sheet2&
Declare PageControl2_Sheet3&
Declare PageControl2_Sheet4&
Declare PageControl2_Sheet5&
Declare PageControl1&
Declare PageControl2&
Dim TBC1#,TabControl
Dim TBC2#,TabControl
Dim pnmh#,NMHDR
var TextFont1&        = Create("Font","MS Sans Serif",13,0,0,0,0)

Proc PageControl1_OnChange

    Declare TBC1&
    TBC1& = TBC1#.GetActiveTab()

    If TBC1& = 0

        TBC1#.SetActiveSheet(PageControl1_Sheet1&,1)
        TBC1#.SetActiveSheet(PageControl1_Sheet2&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet3&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet4&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet5&,0)

    ElseIf TBC1& = 1

        TBC1#.SetActiveSheet(PageControl1_Sheet1&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet2&,1)
        TBC1#.SetActiveSheet(PageControl1_Sheet3&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet4&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet5&,0)

    ElseIf TBC1& = 2

        TBC1#.SetActiveSheet(PageControl1_Sheet1&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet2&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet3&,1)
        TBC1#.SetActiveSheet(PageControl1_Sheet4&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet5&,0)

    ElseIf TBC1& = 3

        TBC1#.SetActiveSheet(PageControl1_Sheet1&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet2&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet3&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet4&,1)
        TBC1#.SetActiveSheet(PageControl1_Sheet5&,0)

    ElseIf TBC1& = 4

        TBC1#.SetActiveSheet(PageControl1_Sheet1&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet2&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet3&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet4&,0)
        TBC1#.SetActiveSheet(PageControl1_Sheet5&,1)

    EndIf

EndProc

Proc PageControl2_OnChange

    Declare TBC2&
    TBC2& = TBC2#.GetActiveTab()

    If TBC2& = 0

        TBC2#.SetActiveSheet(PageControl2_Sheet1&,1)
        TBC2#.SetActiveSheet(PageControl2_Sheet2&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet3&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet4&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet5&,0)

    ElseIf TBC2& = 1

        TBC2#.SetActiveSheet(PageControl2_Sheet1&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet2&,1)
        TBC2#.SetActiveSheet(PageControl2_Sheet3&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet4&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet5&,0)

    ElseIf TBC2& = 2

        TBC2#.SetActiveSheet(PageControl2_Sheet1&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet2&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet3&,1)
        TBC2#.SetActiveSheet(PageControl2_Sheet4&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet5&,0)

    ElseIf TBC2& = 3

        TBC2#.SetActiveSheet(PageControl2_Sheet1&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet2&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet3&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet4&,1)
        TBC2#.SetActiveSheet(PageControl2_Sheet5&,0)

    ElseIf TBC2& = 4

        TBC2#.SetActiveSheet(PageControl2_Sheet1&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet2&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet3&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet4&,0)
        TBC2#.SetActiveSheet(PageControl2_Sheet5&,1)

    EndIf

EndProc

SubClassProc

    If SubClassMessage(%hwnd, ~WM_NOTIFY)

        pnmh# = &sLParam

        If pnmh#.hwndFrom& = PageControl1&

            If pnmh#.code& = ~TCN_SELCHANGE

                PageControl1_OnChange

            EndIf

        EndIf

        Set("WinProc",1)

    ElseIf SubClassMessage(PageControl1&, ~WM_NOTIFY)

        pnmh# = &sLParam

        If pnmh#.hwndFrom& = PageControl2&

            If pnmh#.code& = ~TCN_SELCHANGE

                PageControl2_OnChange

            EndIf

        EndIf

        Set("WinProc",1)

    EndIf

EndProc

Set("TrueColor",1)
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 691,416
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
var hToolBmp& = create("hPic", 0, "TOOLBAR")
var hImageList1& = Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192))
PageControl1& = TBC1#.TabControl(%hwnd,10,60,672,322,hImageList1&,"PageControl1","PageControl1")
PageControl1& = TBC1#.GetHandel()
TBC1#.TBFont(TextFont1&)
PageControl1_Sheet1& = TBC1#.CreateTabSheet(4,25,664,293,2000,1)
TBC1#.InsertTab(1,"Seite 1",9)
PageControl1_Sheet2& = TBC1#.CreateTabSheet(4,25,664,293,2001,0)
TBC1#.InsertTab(2,"Seite 2",9)
PageControl1_Sheet3& = TBC1#.CreateTabSheet(4,25,664,293,2002,0)
TBC1#.InsertTab(3,"Seite 3",9)
PageControl1_Sheet4& = TBC1#.CreateTabSheet(4,25,664,293,2003,0)
TBC1#.InsertTab(4,"Seite 4",9)
PageControl1_Sheet5& = TBC1#.CreateTabSheet(4,25,664,293,2004,0)
TBC1#.InsertTab(5,"Seite 5",9)
PageControl2& = TBC2#.TabControl(PageControl1_Sheet1&,30,20,442,193,hImageList1&,"PageControl2","PageControl2")
PageControl2& = TBC2#.GetHandel()
TBC2#.TBFont(TextFont1&)
PageControl2_Sheet1& = TBC2#.CreateTabSheet(4,25,434,164,2005,1)
TBC2#.InsertTab(1,"Seite 1",9)
PageControl2_Sheet2& = TBC2#.CreateTabSheet(4,25,434,164,2006,0)
TBC2#.InsertTab(2,"Seite 2",9)
PageControl2_Sheet3& = TBC2#.CreateTabSheet(4,25,434,164,2007,0)
TBC2#.InsertTab(3,"Seite 3",9)
PageControl2_Sheet4& = TBC2#.CreateTabSheet(4,25,434,164,2008,0)
TBC2#.InsertTab(4,"Seite 4",9)
PageControl2_Sheet5& = TBC2#.CreateTabSheet(4,25,434,164,2009,0)
TBC2#.InsertTab(5,"Seite 5",9)
SubClass %hwnd,1
SubClass PageControl1_Sheet1&,1
SetWindowPos %hwnd = 207,114 - 691,416;0

WhileNot appexit%

    WaitInput

    If %key = 2

        appexit%=1

    ElseIf %key = 4

        ' Fenstergröße

    ElseIf %key = 5

        ' Hilfe

     href='./../../funktionsreferenzen/xprofan/endif/'>EndIf

EndWhile

OnApplicationExit

Saluto

Detlef

3 kB
Hochgeladen:06.01.2012
Downloadcounter218
Download
 
XProfan X2
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
06.01.2012  
 




Julian
Schmidt
Das funktioniert zwar, allerdings bekomme ich es nicht auf mein Beispiel übertragen.
KompilierenMarkierenSeparieren
 $H MESSAGES.PH
 $H STRUCTS.PH
 $H SHELLAPI.PH
 $H COMMCTRL.PH
Struct NMHDR = ~NMHDR
Def SetActiveTab(2) SendMessage(&(1),$0130C,&(2),0)
cls
Usermessages 16
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", hTab1&, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)
Subclass hTab2&,1
Declare pnmh#
Dim pnmh#,NMHDR

whileloop 4

    InsertTab(hTab1&, &loop+1, "Tab"+Str$(&loop+1))
    InsertTab(hTab2&, &loop+1, "Tab"+Str$(&loop+1))

Endwhile

while 1

    waitinput

    if TabChanged(hTab1&)

        SetActiveTab(hTab2&,GetActiveTab(hTab1&))

    elseif %umessage=16

        Subclass hTab2&,0
        end

    EndIf

Endwhile

SubClassProc

    If SubClassMessage(hTab2&, ~WM_NOTIFY)

        pnmh# = &sLParam

        If pnmh#.hwndFrom& = PageControl1&

            If pnmh#.code& = ~TCN_SELCHANGE

                SetActiveTab(hTab1&,GetActiveTab(hTab2&))

            EndIf

        EndIf

        Set("WinProc",1)

    EndIf

../funktionsreferenzen/xprofan/endproc/'>EndProc

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.01.2012  
 




Detlef
Jagolski

KompilierenMarkierenSeparieren
 $H WINDOWS.PH
 $H MESSAGES.PH
 $H STRUCTS.PH
 $H SHELLAPI.PH
 $H COMMCTRL.PH
Struct NMHDR = ~NMHDR
Def SetActiveTab(2) SendMessage(&(1),$0130C,&(2),0)
cls
Usermessages 16
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", hTab1&, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)
Subclass %hwnd,1
Declare Tab%
Declare pnmh#
Dim pnmh#,NMHDR

whileloop 4

    InsertTab(hTab1&, &loop+1, "Tab"+Str$(&loop+1))
    InsertTab(hTab2&, &loop+1, "Tab"+Str$(&loop+1))

Endwhile

while 1

    waitinput

    if TabChanged(hTab1&)

        SetActiveTab(hTab2&,GetActiveTab(hTab1&))

    elseif %umessage=16

        Subclass hTab2&,0
        end

    EndIf

Endwhile

SubClassProc

    If SubClassMessage(%hwnd, ~WM_NOTIFY)

        pnmh# = &sLParam

        If pnmh#.hwndFrom& = hTab1&

            If pnmh#.code& = ~TCN_SELCHANGE

                Tab% = GetActiveTab(hTab1&)

                If Tab% = 0

                    SetWindowPos hTab2&=15, 45-width(hTab1&)-32, height(hTab1&)-60;0

                ElseIf Tab% = 1

                    SetWindowPos hTab2&=0, 0-0,0;0

                ElseIf Tab% = 2

                    SetWindowPos hTab2&=0, 0-0,0;0

                ElseIf Tab% = 3

                    SetWindowPos hTab2&=0, 0-0,0;0

                ElseIf Tab% = 4

                    SetWindowPos hTab2&=0, 0-0,0;0

                EndIf

            EndIf

        EndIf

        Set("WinProc",1)

    EndI
EndProc
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
06.01.2012  
 




Julian
Schmidt
Ok das funktioniert super.
KompilierenMarkierenSeparieren
Struct NMHDR = hwndFrom&,idFrom&,code&
Def SetActiveTab(2) SendMessage(&(1),$0130C,&(2),0)
cls
Usermessages 16
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", hTab1&, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)
Subclass %hwnd,1
Declare pnmh#
Dim pnmh#,NMHDR

whileloop 4

    InsertTab(hTab1&, &loop+1, "Tab"+Str$(&loop+1))
    InsertTab(hTab2&, &loop+1, "Tab"+Str$(&loop+1))

Endwhile

while 1

    waitinput

    if TabChanged(hTab1&)

        SetActiveTab(hTab2&,GetActiveTab(hTab1&))

    elseif %umessage=16

        Subclass hTab2&,0
        end

    EndIf

Endwhile

SubClassProc

    If SubClassMessage(%hwnd, $004E)

        pnmh# = &sLParam

        If pnmh#.hwndFrom& = hTab2&

            If pnmh#.code& =  0-550 - 1

                SetActiveTab(hTab1&,GetActiveTab(hTab2&))

            EndIf

        EndIf

        Set("WinProc",1)

    EndIf

EndProc


Wäre das theoretisch auch ohne die Klasse possibile?
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.01.2012  
 



Das ist keine Klasse sondern eine Struktur bzw. ein einfacher Speicher.

Dies hwndFrom&,idFrom&,code& sind 3 Longs also 3x4 Byte also kannst Du auch Dim pnmh#,12 schreiben ohne NMHDR zu deklarieren und pnmh#.code& wäre dann long(pnmh#,8) aber statt pnmh# = &sLParam würde ich eher rtlMoveMemory(pnmh#,&slParam,12) schreiben.
 
06.01.2012  
 




Detlef
Jagolski

KompilierenMarkierenSeparieren
Def SetActiveTab(2) SendMessage(&(1),$0130C,&(2),0)
cls
Usermessages 16
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", hTab1&, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)
Declare Tab%

whileloop 4

    InsertTab(hTab1&, &loop+1, "Tab"+Str$(&loop+1))
    InsertTab(hTab2&, &loop+1, "Tab"+Str$(&loop+1))

Endwhile

while 1

    waitinput

    if TabChanged(hTab1&)

        PageControl1_OnChange

    elseif %umessage=16

        Subclass hTab2&,0
        end

    EndIf

Endwhile

Proc PageControl1_OnChange

    Tab% = GetActiveTab(hTab1&)

    If Tab% = 0

        SetWindowPos hTab2&=15, 45-width(hTab1&)-32, height(hTab1&)-60;0

    ElseIf Tab% = 1

        SetWindowPos hTab2&=0, 0-0,0;0

    ElseIf Tab% = 2

        SetWindowPos hTab2&=0, 0-0,0;0

    ElseIf Tab% = 3

        SetWindowPos hTab2&=0, 0-0,0;0

    ElseIf Tab% = 4

        SetWindowPos hTab2&=0, 0-0,0;0

    EndIf

EndProc

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




Julian
Schmidt
iF (06.01.12)
Das ist keine Klasse sondern eine Struktur bzw. ein einfacher Speicher.
Dies hwndFrom&,idFrom&,code& sind 3 Longs also 3x4 Byte also kannst Du auch Dim pnmh#,12 schreiben ohne NMHDR zu deklarieren und pnmh#.code& wäre dann long(pnmh#,8) aber statt pnmh# = &sLParam würde ich eher rtlMoveMemory(pnmh#,&slParam,12) schreiben.


Stimmt so funktionierts. Danke IF
KompilierenMarkierenSeparieren
Def SetActiveTab(2) SendMessage(&(1),$0130C,&(2),0)
cls
Usermessages 16
var hTab1& = Create("TabCtrl", %hwnd, "Tab1", -1, 2, width(%hwnd)+4, height(%hwnd))
var hTab2& = Create("TabCtrl", hTab1&, "Tab1", 15, 45, width(hTab1&)-32, height(hTab1&)-60)
Subclass %hwnd,1
Declare pnmh#
Dim pnmh#,12

whileloop 4

    InsertTab(hTab1&, &loop+1, "Tab"+Str$(&loop+1))
    InsertTab(hTab2&, &loop+1, "Tab"+Str$(&loop+1))

Endwhile

while 1

    waitinput

    if TabChanged(hTab1&)

        SetActiveTab(hTab2&,GetActiveTab(hTab1&))

    elseif %umessage=16

        Subclass hTab2&,0
        Dispose pnmh#
        end

    EndIf

Endwhile

SubClassProc

    If SubClassMessage(%hwnd, $004E)

        pnmh# = &sLParam

        If long(pnmh#,0) = hTab2&

            If long(pnmh#,8)  =  0-550 - 1

                SetActiveTab(hTab1&,GetActiveTab(hTab2&))

            EndIf

        EndIf

        Set("WinProc",1)

    EndIf

EndProc

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
06.01.2012  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

14.119 Views

Untitledvor 0 min.
Normann Strübli04.02.2023
Jörg Sellmeyer23.06.2020
Detlef Jagolski22.05.2014
mein31.05.2013
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