Deutsch
Forum

Steuerelemente falsch in Tabcontrol angezeigt

 
- Seite 1 -



Jac
de
Lad
Schaut euch mal den folgenden Screenshot an, ist das ein Windows XP-Problem? Oder liegts an Profan? Kann man irgendwie beheben (Hintergrundfarbe für Buttons etc. transparent oder so...

Jac

20 kB
Hochgeladen:01.01.2006
Ladeanzahl129
Herunterladen
 
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
01.01.2006  
 



 
- Seite 2 -



Uwe
''Pascal''
Niemeier
Hallo Jac!

Wäre es nicht einfacher, beim TabControl einfach den XP-Stil abzuschalten?

SeeYou
Pascal
 
25.08.2006  
 




Jac
de
Lad
@Pascal: Naja, das stimmt, aber ich wollte den Stil ja behalten, sieht sonst blöde aus...

@Frank: Beispiel kommt gleich!

Jac
 
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
25.08.2006  
 



Also wenn ich auf Tabcontrols Text darstellen muß nehme ich meistens Drawtext. Damit das mit dem Redraw klappt nutze ich den Fastmode und reagiere halt selbst auf das Neuzeichnen.
 
25.08.2006  
 




Jac
de
Lad
Hier der Quelltext:
KompilierenMarkierenSeparieren
Def Setactivetab(2) Sendmessage(&(1),$130C,&(2),0)

subproc Create.Trackbar

    Parameters hwnd&,style&,x%,y%,dx%,dy%
    Style:
    0=horizontal,2=vertikal
     $10=Keine Ticks,0=Ticks
    Return Control("msctls_trackbar32","",$54010020+style&,x%,y%,dx%,dy%,hwnd&,1003,%hInstance,$020000)

endproc

proc SetTrackPos

    Parameters handle&,pos%
    SendMessage(handle&,$405,1,pos%)

endproc

proc SetTrackRange

    Parameters handle&,min%,max%
    SendMessage(handle&,$406,1,min% | (max%*65536))

endproc

proc TC

    declare at%
    at%=GetActiveTab(tab&)
    ShowWindow(dm&,Equ(at%,0))
    ShowWindow(sp&,Equ(at%,0))
    ShowWindow(pt&,Equ(at%,1))
    ShowWindow(pg&,Equ(at%,1))
    ShowWindow(tm&,Equ(at%,0))
    ShowWindow(it&,Equ(at%,0))
    ShowWindow(zv&,Equ(at%,1))
    ShowWindow(ign&,Equ(at%,0))
    ShowWindow(tar&,Equ(at%,1))
    ShowWindow(tars&,Equ(at%,1))
    ShowWindow(ind&,Equ(at%,1))
    ShowWindow(idx&,Equ(at%,1))
    ShowWindow(date&,Equ(at%,1))
    ShowWindow(dt&,Equ(at%,1))
    ShowWindow(dtf&,Equ(at%,1))
    ShowWindow(rec&,Equ(at%,2))
    ShowWindow(comp&,Equ(at%,2))
    ShowWindow(compt&,Equ(at%,2))
    ShowWindow(compo&,Equ(at%,2))
    ShowWindow(mark&,Equ(at%,0))
    ShowWindow(mask&,Equ(at%,0))
    ShowWindow(erase&,Equ(at%,1))
    ShowWindow(bsize&,Equ(at%,1))
    ShowWindow(crc&,Equ(at%,1))
    ShowWindow(sort&,Equ(at%,0))
    ShowWindow(idc&,Equ(at%,1))
    ShowWindow(idt&,Equ(at%,1))

endproc

proc options

    declare dm&,idt&,idc&,sp&,pt&,pg&,tm&,it&,zv&,tab&,p$,dlg&,ign&,tar&,tars&,ind&,idx&,date&,dt&,dtf&,rec&,comp&,compt&,compo&,mark&,mask&,erase&,bsize&,crc&,ok&,std&,abb&,sort&
    EnableWindow %HWnd,0
    dlg&=Create("Dialog",%HWnd,"Einstellungen",0,0,0,0)
    ShowWindow(dlg&,0)
    SetWindowPos dlg&=(%MaxX-424)/2,((%MaxY-404)/2)-424,404
    tab&=Create("TabCtrl",dlg&,"Anzeige",8,8,400,324)
    InsertTab(tab&,1,"Kopieroptionen")
    InsertTab(tab&,2,"Rekompression")
    dm&=Create("Text",dlg&,"Dateimaske:",16,48,96,18)
    mask&=Create("Edit",dlg&,"Dateien",160,44,240,24)
    it&=Create("Text",dlg&,"Ignorierte Laufwerke (z.B. AbXyz):",16,80,240,18)
    ign&=Create("Edit",dlg&,"AbXyz",240,76,160,24)
    mark&=Create("Checkbox",dlg&,"Neue Dateien automatisch markieren",16,108,280,18)
    SetCheck mark&,1
    sp&=Create("Text",dlg&,"Sortierreihenfolge:",16,136,240,18)
    sort&=Create("Choicebox",dlg&,0,132,132,260,240)
    AddString(sort&,"Nach Dateiname (mit Pfad)")
    AddString(sort&,"Nach Dateiname (ohne Pfad)")
    AddString(sort&,"Nach Datum (neuste zuerst)")
    AddString(sort&,"Nach Datum (älteste zuerst)")
    AddString(sort&,"Nach Größe (kleinste zuerst)")
    AddString(sort&,"Nach Größe (größte zuerst)")
    AddString(sort&,"Nach Dateiendung")
    AddString(sort&,"Nicht übertragene zuerst (+Pfad)")
    AddString(sort&,"Nicht übertragene zuerst (+Name)")
    sendmessage(sort&,$14E,4,0)
    zv&=Create("Text",dlg&,"Zielverzeichnis:",16,48,240,18)
    tars&=Create("Button",dlg&,"Suchen",160,44,80,24)
    tar&=Create("Edit",dlg&,"C:",240,44,160,24)
    date&=Create("CheckBox",dlg&,"Unterverzeichnis mit aktuellem Datum anlegen:",16,76,320,18)
    SetCheck date&,1
    dtf&=Create("Text",dlg&,"Datumsformat:",16,108,240,18)
    EnableWindow dtf&,1
    dt&=Create("ChoiceBox",dlg&,0,160,104,240,160)

    whileloop 0,5

        case Neq(&Loop,4):AddString(dt&,Date$(&Loop))

    wend

    sendmessage(dt&,$14E,1,0)
    EnableWindow dt&,1
    ind&=Create("Checkbox",dlg&,"Dateien indizieren, Index:",16,140,156,18)
    SetCheck ind&,1
    idx&=Create("Edit",dlg&,"44",176,136,64,24)
    SetStyle idx&,$50012080
    EnableWindow idx&,1
    idt&=Create("Text",dlg&,"Stellen:",292,140,64,18)
    EnableWindow idt&,1
    idc&=Create("Edit",dlg&,"6",336,136,64,24)
    EnableWindow idc&,1
    SetStyle idc&,$50012080
    erase&=Create("Checkbox",dlg&,"Dateien nach Übertragung löschen",16,168,240,18)
    SetCheck erase&,1
    pt&=Create("Text",dlg&,"Genauere Fortschrittsanzeige                             Schnellere Übertragung",16,192,382,18)
    bsize&=create("Trackbar",tab&,0,8,202,382,44)
    SetTrackRange bsize&,10,20
    SetTrackPos bsize&,15
    pg&=Create("Text",dlg&,"Schnellere CRC-Erstellung                                      Genauere Erkennung",16,260,382,18)
    crc&=create("Trackbar",tab&,0,8,270,382,44)
    SetTrackRange crc&,10,17
    SetTrackPos crc&,12
    rec&=Create("Checkbox",dlg&,"Dateien neu komprimieren",16,48,240,18)
    SetCheck rec&,1
    compt&=Create("Text",dlg&,"Kompression:",16,72,160,18)
    EnableWindow compt&,1
    comp&=Create("Edit",dlg&,"8",232,68,40,24)
    EnableWindow comp&,1
    compo&=Create("Checkbox",dlg&,"Andere Bildformate in JPEG konvertieren",16,96,360,18)
    SetCheck compo&,1
    EnableWindow compo&,1
    ok&=Create("Button",dlg&,"OK",8,340,96,24)
    abb&=Create("Button",dlg&,"Abbrechen",112,340,96,24)
    std&=Create("Button",dlg&,"Standard",296,340,96,24)
    SetActiveTab(tab&,1)
    TC
    SetActiveTab(tab&,0)
    TC
    ShowWindow(dlg&,1)

    while 1

        EnableWindow dtf&,GetCheck(date&)
        EnableWindow dt&,GetCheck(date&)
        EnableWindow idx&,GetCheck(ind&)
        EnableWindow idt&,GetCheck(ind&)
        EnableWindow idc&,GetCheck(ind&)
        EnableWindow compt&,GetCheck(rec&)
        EnableWindow comp&,GetCheck(rec&)
        EnableWindow compo&,GetCheck(rec&)
        case TabChanged(tab&):TC
        waitinput

        if Clicked(std&)

            sendmessage(dt&,$14E,0,0)
            sendmessage(sort&,$14E,0,0)
            SetText mask&,""
            SetText ign&,""
            SetCheck date&,0
            SetCheck ind&,0
            SetCheck erase&,0
            SetCheck rec&,0
            SetText comp&,"8"
            SetCheck compo&,0
            SetCheck mark&,1
            SetTrackPos bsize&,20
            SetTrackPos crc&,17
            SetText idc&,"6"

        elseif Clicked(tars&)

            p$=ChooseDir$("Zielverzeichnis wählen")
            casenot %IOResult:SetText tar&,p$

        elseif Clicked(ok&)

            Break

        elseif Or(Clicked(abb&),Equ(%Key,2))

            Break

        endif

    wend

    DestroyWindow(dlg&)
    EnableWindow %HWnd,1

endproc

cls
UseFont "Sagoe UI",15,0,0,0,0
Setdialogfont 1
options
Print "Ich warte..."
waitinput

@iF: Mit der TControl.dll hats wunderbar geklappt, nur leider ist mein Prog, in dem ich die verwendet hab weg und ich habe keine Anleitung...
 
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
25.08.2006  
 




Michael
Wodrich
Sieht ohne XP-Style doch Klasse aus.

Schalte mal um - moment...

Arrrggggg - jetzt weiß ich, warum der bei mir abgeschaltet ist.

Da hilft wohl wirklich nur eine Umstellung auf die Property-Sheets.

Mal schauen...

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
25.08.2006  
 




Jac
de
Lad
Ja, genau das meine ich!
 
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
25.08.2006  
 




Frank
Abbing
Hier der originale Quellcode zur Dll. Ich denke, der ist ziemlich selbsterklärend:
KompilierenMarkierenSeparieren
SetTrueColor 1
Declare fadll&,x&,y&,text$,farbe&,listbox&,choicebox&,tab&,memhwnd&,text&
Def GetSysColor(1) !"USER32","GetSysColor"
Def LoadIcon(2) !"USER32","LoadIconA"
Def GetWindowLong(2) !"USER32","GetWindowLongA"
Def SetWindowLong(3) !"USER32","SetWindowLongA"
Def GetPix(3) !"GDI32","GetPixel"
Def GetDC(1) !"USER32","GetDC"
DEF TC_Init(2) !"TControl.dll","TC_Init"
DEF TC_Include(6) !"TControl.dll","TC_Include"
DEF TC_Remove(1) !"TControl.dll","TC_Remove"
fadll&=usedll("TControl.dll")
WindowStyle 543
WindowTitle "Transparente Controls mit der TControl.dll, © 2005 Frank Abbing."
Window 0,0-600,440
Cls GetSysColor(4)
SendMessage(%hwnd,$80,1,LoadIcon(0,32517))    WM_SetIcon  Application Icon setzen
Usefont "MS Sans Serif",10,0,0,0,0
SetDialogFont 1
text&=Create("TEXT",%hwnd,"",20,20,540,360)
tab&=Create("TABCTRL",text&,"Reiter 1",0,0,540,360)
InsertTab(tab&,1,"Reiter 2")
InsertTab(tab&,2,"Reiter 3")
x&=GetDC(tab&)
x&=GetPix(x&,8,80)
MCLS %maxx,%maxy
StartPaint -1
Cls x&
EndPaint
Create("CHECKBOX",text&,"Checkbox",48,52,120,24)
Create("RADIOBUTTON",tab&,"Radiobutton",48,80,120,24)
Create("Groupbox",tab&,"ChildWindow",32,32,200,84)
Create("Edit",text&,"Editier mich.",32,128,200,24)
listbox&=Create("Listbox",text&,"",32,160,200,144)

Whileloop 24

    text$="Das ist Eintrag Nr. "
    text$=text$+Str$(&loop)
    @AddString(listbox&,text$)

EndWhile

choicebox&=Create("Choicebox",text&,"",32,320,200,64)

Whileloop 8

    text$="Text Nr. "
    text$=text$+Str$(&loop)
    @AddChoice(choicebox&,text$)

EndWhile

SendMessage(choicebox&,$14e,0,0)
text$="Das hier ist ein statischer Text,
Static-Control oder auch
Text-Control genannt."
Create("TEXT",text&,text$,264,52,200,56)
text$="Und ein Multiedit, geeignet für schnelle Texteingabe. Bietet Platz für bis zu 32768 Zeilen Text. Das reicht in den meisten Fällen für viele Anwendungen."
Create("Multiedit",text&,text$,264,116,200,-64)
Create("Button",tab&,"Drück mich",264,116+64+16,80,24)
StartPaint -1
x&=%HDC2
EndPaint
TC_Init(%hwnd,%hdc2)
TC_Init(text&,x&)
RePaint

WhileNot 0

    WaitInput
    Case %key=2:BREAK

EndWhile

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Das gesubclasste Fenster muss vor Beenden von Hand zerstört werden.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DestroyWindow(tab&)
DestroyWindow(%hwnd)
freedll fadll&
end
 
25.08.2006  
 




Jac
de
Lad
Hm,

aber wozu sind die Befehle TC_Include und TC_Remove da?
 
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
25.08.2006  
 




Frank
Abbing
Ach so. Vergiss die beiden Funktionen. Die waren mal als Erweiterung geplant, werden aber nicht benutzt. Wenn du sie aufrufst, passiert nichts.
 
25.08.2006  
 




Jac
de
Lad
Ich vergess die ganze DLL: Mit der DLL gehts zwar so recht und schlecht, aber Trackbars und SpinEdits werden falsch angezeigt und mit ShowWindow() klappts auch nicht immer...ich setze den Style für Tabcontrols einfach zurück und gut.
 
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
26.08.2006  
 




Frank
Abbing
Genau das war der Grund für die Einstellung der Dll.
 
26.08.2006  
 




Jac
de
Lad
 
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
26.08.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.860 Betrachtungen

Unbenanntvor 0 min.
Jörg Sellmeyer23.06.2018
Torsten Rümker12.06.2015
Peter Max Müller16.04.2015
iF09.09.2012
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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