Hello,<br><br>I have been doing some win32 programming using ctypes. I
have successfully created windows, common controls, manipulated and
shown images, and so forth. However, I am having trouble with custom
controls.<br><br>
I can create a new window class, successfully register it, then successfully create a child window.<br><br>When
the parent window gets the UpdateWindow call, the program crashes. If I
set the style of the child to not include WS_VISIBLE, the program does
not crash, but the window of course does not appear. If I then call
ShowWindow on the child window, the program crashes.
<br><br>I have carefully monitored the windows messages that are being
seen by the main window&#39;s procedure and the child window&#39;s procedure,
and the crash always happens right after the first WM_PAINT to the
parent window. No further messages are seen by either procedure before
it crashes. Before the crash both procedures process normal messages
like WM_CREATE etc.
<br><br><br>Backing up a step, I started from scratch with a main
window and a normal child button control, made sure it worked fine,
then used SetWindowLong to replace the window procedure on the child
control. This works fine as long as I don&#39;t replace the window
procedure too early - if I replace it before the first call to
UpdateWindow in the startup procedure of the application, the program
once again crashes (and I really do believe these two problems are
related).
<br><br><br>Basically, it seems that I am missing something vital from
my windows procedure that has something to do with the window being a
WS_CHILD, and to do with creation or painting. The system&#39;s button
window procedure has it, and my main window doesn&#39;t need it, but my
custom child control does.
<br><br>For testing purposes I call DefWindowProc with the appropriate
arguments, and don&#39;t do anything else in the child window&#39;s procedure.
Is there something else I need to do though?<br><br><br><br>I&#39;m really stuck, really confused. Any suggestions?
<br><br><br clear="all"><br>-- <br>Henry
<br>