What are you searching for? You already have an hwnd for WinAPI methods and UI control to access its properties, such as material.
import pymxs, PySide2
rt = pymxs.runtime
rt.clearListener()
mxsstr = '''
rollout mbtest "Matbuttons"
(
materialButton mb1 "Test1" width:100 height:100 across:3
materialButton mb2 "Test2" width:100 height:100
materialButton mb3 "Test3" width:100 height:100
on mbtest open do
(
mb1.material = Standard name:#MAT_RED diffuse:red
mb2.material = Standard name:#MAT_GRN diffuse:green
mb3.material = Standard name:#MAT_BLU diffuse:blue
)
)
createdialog mbtest width:450
cui.RegisterDialogBar mbtest
'''
print(mxsstr)
rt.execute(mxsstr)
maxWindow = PySide2.QtWidgets.QWidget.find(rt.windows.getMaxHWnd())
def procCh(wd):
chArr = wd.children()
for cch in chArr:
if type(cch) == PySide2.QtWidgets.QDockWidget:
if cch.windowTitle() == 'Matbuttons':
return cch
rw = procCh(maxWindow)
for i in rt.mbtest.controls:
chwnd = i.hwnd[0]
print('hwnd:{0} control:{1} (by name >> {2}) mat:{3}'.format(chwnd, i, getattr(rt.mbtest, getattr(i, 'name')) ,getattr(i,'Material')))
##print(''.format(chwnd, i, '==', getattr(rt.mbtest, getattr(i, 'name')) , 'mat:', getattr(i,'Material'))
stuctArr = rw.children()
class CBrowser(PySide2.QtWidgets.QMainWindow):
def __init__(self, parent = maxWindow):
super(CBrowser, self).__init__(parent)
self.setCentralWidget(stuctArr[5])
self.resize(850, 600)
cWindow = CBrowser()
cWindow.show()