Re: What am I doing wrong?
- Posted by Elliott Sales de Andrade <quantum_analyst at hotmail.com> Sep 29, 2003
- 580 views
The problem is, you are mixing setHandler() and the onXXX events. Any use of setHandler() turns off the onXXX events. I think adding a tooltip to the button might indirectly call setHandler(). Either way, you should be using setHandler and not onXXX. onXXX events are deprecated. Your code should be re-written like this: include win32lib.ew constant -- Win32 Setup Win = create(Window, "Window Title", 0, {0.5,-150}, {0.5, -220}, 300, 220, 0) constant Done = create(PushButton, {"Exit","Close window and exit."}, Win, 150, 160, 60, 25, w32AUTOCLOSE) procedure onPaint_Win(integer self, integer event, sequence params) --params is {x1, y1, x2, y2} wPuts(Win, "This is some text") end procedure setHandler(Win, w32HPaint, routine_id("onPaint_Win")) WinMain(Win, Normal) >From: Louis at cwshop.com >Reply-To: EUforum at topica.com >To: EUforum <EUforum at topica.com> >Subject: What am I doing wrong? >Date: Mon, 29 Sep 2003 13:24:48 -0400 > > >Although an experienced programmer, I know nothing about Windows >programming except what is in the Win32Lib documentation. > >I am trying to put text into a window that also has a button in it. This >is my test program: > >constant -- Win32 Setup > Win = create(Window, "Window Title", 0, > {0.5,-150}, {0.5, -220}, 300, 220, 0) > >--constant >-- Done = create(PushButton, {"Exit","Close window and exit."}, >-- Win, 150, 160, 60, 25, w32AUTOCLOSE) > >procedure onPaint_Win(integer x1, integer y1, integer x2, integer y2) > wPuts(Win, "This is some text") >end procedure > >onPaint[Win] = routine_id("onPaint_Win") > >WinMain(Win, Normal) > >This displays the text OK, but if I uncomment the lines to create a button, >the text disappears. Why? > >I tried putting the wPuts in "Load_Win" which is called as: > >setHandler(Win, w32HActivate, routine_id("Load_Win")) > >And that worked, except if I minimize the window then bring it back, the >text is gone. Why? > >I tried changing "W32HActivate" to "W32HOpen", but that never worked at >all. Why? Because the window had not opened yet? > >Louis. > > > >TOPICA - Start your own email discussion group. FREE! > >