Greg Ewing wrote:
<div class="moz-text-flowed" style="font-family: -moz-fixed">Has
anyone successfully used the PyCWnd.OnCtlColor
virtual function to change the appearance of a
control?
The program below tries to use it to set the colour
of the text in a PyCButton. My OnCtlColor method gets
called, but it doesn't have any effect on the appearance
of the button.
Also, if I attempt to return a PyCBrush from the
OnCtlColor method as the docs suggest, I get
"TypeError: An integer is required" errors.
Am I doing something wrong?
#--------------------------------------------------------------------------------
import win32con, win32ui
from pywin.mfc.object import Object
class MyFrame(Object):
def OnCtlColor(self, dc, btn, typ):
print "MyFrame.OnCtlColor:", self ###
dc.SetTextColor(0x0000ff)
# Doing the following causes "TypeError: An integer is required"
#b = win32ui.CreateBrush()
#b.CreateSolidBrush(0x00ff00)
#return b
frame = MyFrame(win32ui.CreateFrame())
frame.CreateWindow(None, "Test", win32con.WS_CAPTION,
(100, 100, 300, 300))
button = win32ui.CreateButton()
style = win32con.BS_CHECKBOX
button.CreateWindow("Hello", style, (20, 20, 100, 40),
frame, 0)
button.ShowWindow(win32con.SW_SHOW)
frame.ShowWindow()
app = win32ui.GetApp()
app.Run()
#--------------------------------------------------------------------------------
I'm probably being naive, but why don't you just use one of Python
excellent GUI toolkits? You'll get cross-platform code out of the box,
if you're careful with Tkinter and wxPython...
IronPython may be helpful too since you can use Visual Studio to layout
your application and IronPython to control it.
-------------------
Mike Driscoll
Blog: http://blog.pythonlibrary.org
Python Extension Building Network: http://www.pythonlibrary.org
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32