Autor
|
Thema: Farbe zurücksetzen (10822 mal gelesen)
|
Goosnargh Mitglied
Beiträge: 80 Registriert: 30.11.2004
|
erstellt am: 28. Mrz. 2007 16:52 <-- editieren / zitieren --> Unities abgeben:
|
rfriedrich Mitglied
Beiträge: 39 Registriert: 11.05.2005
|
erstellt am: 29. Mrz. 2007 08:50 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Farbe zurücksetzen geht mit oSelection.VisProperties.SetRealColor 255, 255, 255, 0 RGB-Werte bekommst Du in den Graphic Properties, in der Farbe "more colors" auswählen, dort "define custom colors" anwählen. Rechts werden die RGB-Werte der aktuellen Farbe angezeigt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Goosnargh Mitglied
Beiträge: 80 Registriert: 30.11.2004
|
erstellt am: 29. Mrz. 2007 12:33 <-- editieren / zitieren --> Unities abgeben:
Danke mit der aktuellen Farbe gehts, ich hatte immer nur bei den basic colors geschaut. (die Grundfarbe ist übrigens 210,210,255) [Diese Nachricht wurde von Goosnargh am 29. Mrz. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 29. Mrz. 2007 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo rfriedrich, Farbe zurücksetzen ist was anderes. Du weisst ihr den RGB-Wert 255/255/255 zu. Bsp. Du hast einen Würfel, der ist grau. Du färbst eine Seitenfläche rot. Wenn du die Farbe zurücksetzt und den Würfel von grau auf grün färbst, werden alle Seitenflächen grün. Änderts du allerdings den RGB-Wert der gefärbten Seitenfläche (wie auch immer, z.B. 255/255/255) und färbst den Würfel um, so ändert sich die eine Fläche nicht mit. Zurücksetzten per Script geht (meines Wissens nach) nicht. Gruss an die alte Heimat
------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Goosnargh Mitglied
Beiträge: 80 Registriert: 30.11.2004
|
erstellt am: 29. Mrz. 2007 19:59 <-- editieren / zitieren --> Unities abgeben:
|
Augustiner Mitglied Konstrukteur
Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 30. Mrz. 2007 06:56 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Ja zurücksetzen der Farbe geht definitiv nicht hab mich damit auch schon rumgeschlagen.Und noch was die Farbe Weiss und die einstellung none liefern den selben RGB Wert ( 255,255,255). Gruß Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Goosnargh Mitglied
Beiträge: 80 Registriert: 30.11.2004
|
erstellt am: 30. Mrz. 2007 07:06 <-- editieren / zitieren --> Unities abgeben:
|
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 25. Nov. 2008 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 26. Nov. 2008 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
|
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 26. Nov. 2008 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
|
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 26. Nov. 2008 09:12 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo hier ein Code: Sub CATMain() Dim oColor(1,2)
'Grau ocolor(0,0)=210 ocolor(0,1)=210 ocolor(0,2)=255 Dim oRoot_Product As AnyObject Set oRoot_Product = CATIA.ActiveDocument.Product Dim oSelection As Selection Set oSelection = CATIA.ActiveDocument.Selection oSelection.VisProperties.SetRealColor oColor(0,0), oColor(0,1), oColor(0,2), 1 End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 26. Nov. 2008 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Oder wenn mann's kurzer mag Sub CATMain()
Dim oRoot_Product As AnyObject Set oRoot_Product = CATIA.ActiveDocument.Product Dim oSelection As Selection Set oSelection = CATIA.ActiveDocument.Selection oSelection.VisProperties.SetRealColor 210, 210, 255, 1 End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 26. Nov. 2008 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
@ ogard1: Ich dachte an den Startcommand-Befehl. Mit deinem Code willst du die Elemente neu einfärben. Dies setzt die Farbe aber definitiv nicht zurück. Außerdem funktioniert dein Code (bei mir) nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 26. Nov. 2008 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo, die Anforderung weiter oben war: Da es nicht gerade optimal ist, alles auf Solid-grau (210,210,255) zu setzen... Wenn du in den Properties nachschaust dann ist die Farbe Grau gewählt, wenn du aber möchtest das in den Properties " No Color" steht dann oSelection.VisProperties.SetRealColor 210, 210, 255, 1 statt "1" die "0" eintragen
Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
elharry Mitglied
Beiträge: 47 Registriert: 03.04.2007
|
erstellt am: 26. Nov. 2008 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo zusammen, im PartDesing bevorzuge ich es die Properties einfach wieder zurück zu setuzen. RM auf PartBody --> PartBoy object --> Reset Properties --> Apply to children --> OK Danach ist alles im CATIA grau. viele grüße Harry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 26. Nov. 2008 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
@ ogard1: also bei mir färbt es die Elemente neu ein, setzt aber die farbe nicht zurück. Zitat: Farbe zurücksetzen ist was anderes. Du weisst ihr den RGB-Wert 255/255/255 zu.Bsp. Du hast einen Würfel, der ist grau. Du färbst eine Seitenfläche rot. Wenn du die Farbe zurücksetzt und den Würfel von grau auf grün färbst, werden alle Seitenflächen grün. Änderts du allerdings den RGB-Wert der gefärbten Seitenfläche (wie auch immer, z.B. 255/255/255) und färbst den Würfel um, so ändert sich die eine Fläche nicht mit. Zurücksetzten per Script geht (meines Wissens nach) nicht.
So sehe ich das auch. grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 26. Nov. 2008 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo, ihr habt recht, ich hab es auch mit Elements probiert, funct auch nicht so richtig Sorry Sub CATMain() Set ElementDoc = CATIA.ActiveDocument Set UserSelection = ElementDoc.Selection Set visPropertySet1 = UserSelection.VisProperties visPropertySet1.SetRealColor 255, 255, 255, 0 End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 27. Nov. 2008 09:59 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo, das Problem kommt daher das Catia zwischen zwei Arten der Farben unterscheidet 1. RealColor werden im Baum vergeben 2. 3D Color oder Visualcolor wird im Fenster beim Selektieren des Elements vergeben @ V5Playaz: das mit zurücksetzen oder neu vergeben kann mann so oder so sehen, die Ausgangssituation ist das das Bauteil oder die Fläche eine Farbe hat. Ob mann die auf Default zurücksetzt oder die gleiche neu vergibt?? Heißt, leider ist es nicht möglich mit Macro Farbe im 3D Bereich zu vergeben und mit Selektion im Baum die zurücksetzen oder neu vergeben. Heiß auch da wo ich die Farbe vergeben habe muß ich auch Selektion vornehmen. Was bleibt, Vorschlag vom elharry: RM auf PartBody --> PartBoy object --> Reset Properties --> Apply to children --> OK Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 27. Nov. 2008 12:09 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
wenn ich die farbe zurücksetze, ist das was anderes, als wenn ich die farbe neu setze. beispiel: es gibt ja auch planes, axis, etc. welche nicht im solid-grau gefärbt sind. solche ausnahmefälle müssten man halt abfangen. der vorschlag funktioniert zwar manuell, aber automatisiert ist hier wohl leider nichts machbar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 28. Nov. 2008 08:59 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo V5Playaz, das Objekt muss selektiert sein, dann kannst du in VB6 o. .Net z.B. folgenden Code nutzen: ..... AppActivate ("CATIA V5") '--- Catia-Fenster (die Applikation) aktivieren Catia.StartCommand "Reset Properties" '--- Startcommand ausführen Start = Timer '--- 1 sec Pause Do While Timer < Start + 1 DoEvents Loop SendKeys Chr(13), True '--- ein Enter ..... In einem .CATScript funktioniert das so nicht. Allerdings gibt es im Forum viele Beiträge die zeigen, wie ein Startcommand in einem .CATScript gehandelt wird: das grundsätzliche Problem ist hierbei allergings immer das Bestätigen des Menüs (d.h. das OK klicken) Gruß ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
O Shovah Mitglied Student
Beiträge: 17 Registriert: 01.03.2011
|
erstellt am: 29. Nov. 2012 00:45 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo, entschuldigt, dass ich einen so alten Thread wieder ausgrabe, aber das war das einzige was ich über die Suche zu meinem Problem gefunden habe. Ich weiß nicht was ich versehentlich geändert habe, aber meine Parts sind default nicht mehr grau, sondern weiß. Von Programmierung und Makros in Catia habe ich keine Ahnung und kann den Erläuterungen hier nicht immer ganz folgen, aber alles was ich bisher ausprobiert habe hat nichts gebracht, auch dieser Tipp: Zitat: Original erstellt von elharry:
RM auf PartBody --> PartBoy object --> Reset Properties --> Apply to children --> OK Danach ist alles im CATIA grau.viele grüße Harry
bleibt trotzdem alles weiß. In den Anzeige Properties habe ich auch keine Einstellmöglickeit gefunden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 29. Nov. 2012 07:12 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
|
O Shovah Mitglied Student
Beiträge: 17 Registriert: 01.03.2011
|
erstellt am: 04. Dez. 2012 21:14 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Ja, das hat geholfen. Habe alle files im CATSettings-Ordner rausgenommen und jetzt passt die Farbe wieder. Das war etwa die doppelte Anzahl im Vergleich zu den jetzt wieder neu generierten, was hatte ich da denn alles eingestellt... Wird sich zeigen wenns an anderer Stelle hängt. Vielen Dank für den Tipp Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kay Petri Mitglied Konstrukteur Catia V5
Beiträge: 24 Registriert: 18.06.2012 Workstation HP 840
|
erstellt am: 02. Mrz. 2016 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hallo Spezialisten. Ich hänge genau am beschriebenen Problem die Bestätigung des StartCommand, also OK drücken. Catia will das einfach nicht annehmen. Hat evtl. jemand dafür eine Lösung? Vorab. SendKeys "{ENTER}" usw. funktioniert nicht. Der Dialog bleibt einfach geöffnet und wird nicht bestätigt. Ich vermute dass die Dialogbox nicht Aktiv ist. Das habe ich via AppActivate("Reset Properties") versucht. Aber das Dialogfenster wird nicht als Aktiv gesetzt. Weis denn jemand wie Dialoge über vba bestätigt werden können? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 02. Mrz. 2016 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
|
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 02. Mrz. 2016 14:14 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
|
Kay Petri Mitglied Konstrukteur Catia V5
Beiträge: 24 Registriert: 18.06.2012 Workstation HP 840
|
erstellt am: 02. Mrz. 2016 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Also Ich habe es jetzt doch hin bekommen. Es werden einige Declarationen und Funktionen benötigt. Das ganze ist auf VBA 7.1 und 64Bit. '_________________________________________________FÜR RESET PROPERTIES BENÖTIGT Public Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Public Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Public Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Public Declare PtrSafe Function EnumChildWindows Lib "user32" (ByVal hWndParent As LongPtr, ByVal lpEnumFunc As LongPtr, ByVal lParam As Long) As LongPtr Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Const WM_GETTEXT = &HD Public Const BM_CLICK = &HF5& Public Const BM_SETCHECK = &HF1 Public Const BST_CHECKED = &O1 Public Const BST_INDETERMINATE = &O2 Public Const BST_UNCHECKED = &O0 Dim Text As String CATMain() . . . '________________________RESET PROPERTIES CATIA.StartCommand ("Reset Properties") 'FUNKTIONSAUFRUF CLOSEDIALOG ERLEDIGT SUCHE NACH FENSTER UND OK BUTTON CloseDialog ("Reset Properties"), "OK" . . . End Sub '________________________FUNKTIONEN ZUM DIALOGBOX OK Bestätigen RESET PROPERTIES Function EnumChildWindow(ByVal hChild As Long, ByVal lParam As Long) As Long Dim iClass As String Dim iText As String Dim j As Integer iClass = Space(256) j = GetClassName(hChild, iClass, 63) iClass = Left(iClass, j) iText = Space(256) j = SendMessage(hChild, WM_GETTEXT, 255, iText) iText = Left(iText, j) Select Case iText Case "Apply to children" If iText = Text Then SendMessage hChild, BM_SETCHECK, ByVal CLng(BST_CHECKED), ByVal CLng(0) Case "OK" If iText = Text Then SendMessage hChild, BM_CLICK, 0, 0 End Select EnumChildWindow = 1 End Function Public Sub CloseDialog(strDlgWnd As String, strBtnWnd As String) Dim hWndDlg As LongPtr Dim hWndButton As LongPtr CATIA.RefreshDisplay = True ‘VERLANGSAMT DIE BERECHNUNG SO DAS GENUG ZEIT ZUR AUSWAHL IST. OHNE TRUE BLEIBT CODE STEHEN
Do While hWndDlg = 0 'wait for handle 'get dialog's handle hWndDlg = FindWindow(vbNullString, strDlgWnd) DoEvents 'do something else Loop CATIA.RefreshDisplay = True Do While hWndButton = 0 'wait for handle 'get OK button's handle hWndButton = FindWindowEx(hWndDlg, 0&, vbNullString, strBtnWnd) DoEvents Loop 'close dialog window SendMessage hWndButton, BM_CLICK, 0&, 0& CATIA.RefreshDisplay = True Do While hWndDlg <> 0 hWndDlg = FindWindow(vbNullString, strDlgWnd) DoEvents 'do something else Loop End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 02. Mrz. 2016 17:27 <-- editieren / zitieren --> Unities abgeben: Nur für Goosnargh
Hi Kay, noch zwei Anmerkungen zu EnumChildWindow:
Code:
Function EnumChildWindow(ByVal hChild As Long, ByVal lParam As Long) As Long Dim iClass As String Dim iText As String Dim j As Integer iClass = Space(256) j = GetClassName(hChild, iClass, 63) iClass = Left(iClass, j) iText = Space(256) j = SendMessage(hChild, WM_GETTEXT, 255, iText) iText = Left(iText, j) Select Case iText Case "Apply to children" If iText = Text Then SendMessage hChild, BM_SETCHECK, ByVal CLng(BST_CHECKED), ByVal CLng(0) Case "OK" If iText = Text Then SendMessage hChild, BM_CLICK, 0, 0 End Select EnumChildWindow = 1 End Function
iClass: - Du frägst zwar die Klasse ab, verwendest sie aber nirgends -> kann entfallen. - Der angelegte Buffer ist 256 Zeichen lang(iClass = Space(256)); beim Aufruf von GetClassName gibst Du aber stattdessen 63 Zeichen an(GetClassName(hChild, iClass, 63)); Text: Globale Variable; schlechter Name für eine Variable; wo erfolgt die Zuweisung?
Variable j: - definiert als integer; die aufgerufenen Funktionen erwarten aber einen 'Long'.
SendMessage: - SendMessage hChild, BM_SETCHECK, ByVal CLng(BST_CHECKED), ByVal CLng(0) - SendMessage hChild, BM_CLICK, 0, 0
Die 'Standard-Deklaration für Sendmessage lautet: Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long ... bei Dir jedoch 'ByVal lParam As String'. Wenn Du stattdessen 'ByVal lParam As Long' schreibst, also Public Declare PtrSafe Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long kannst Du Dir den Akt mit CLng() sparen: - SendMessage hChild, BM_SETCHECK, BST_CHECKED, 0& - SendMessage hChild, BM_CLICK, 0&, 0& Nachzulesen auch hier: http://catia2.cad.de/index.php/de/artikel-und-beispiele/272-0-02-sendmessage Zusammengefasst:
Code:
Function EnumChildWindow(ByVal hChild As Long, ByVal lParam As Long) As Long Dim strText As String Dim lRet As Long strText = Space(256) lRet = SendMessage(hChild, WM_GETTEXT, Len(strText), strText) strText = Left(strText, lRet) Select Case strText Case "Apply to children" If strText = Text Then SendMessage hChild, BM_SETCHECK, BST_CHECKED, 0& Case "OK" If strText = Text Then SendMessage hChild, BM_CLICK, 0&, 0& End Select EnumChildWindow = 1 End Function
Die Variable 'Text' hab ich jetzt nicht angefasst, weil ich schlicht nicht weiss wo/wie sie definiert ist und was sie tut. Zu den Deklarationen der Konstanten:
Code:
Public Const BST_CHECKED = &O1 Public Const BST_INDETERMINATE = &O2 Public Const BST_UNCHECKED = &O0
Aus der Online-Hilfe: Zitat:
Oct FunctionYou can represent octal numbers directly by preceding numbers in the proper range with &O. For example, &O10 is the octal notation for decimal 8.
Von 0 bis 7 geht das, aber wozu? Besser:
Code:
Public Const BST_CHECKED = &H1 Public Const BST_INDETERMINATE = &H2 Public Const BST_UNCHECKED = &H0
oder Code:
Public Const BST_CHECKED as long = &H1 Public Const BST_INDETERMINATE as long= &H2 Public Const BST_UNCHECKED as long= &H0
Nur als kleine Anregung. Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |