Win32lib (simple app) not working #2
- Posted by euman at bellsouth.net Aug 18, 2003
- 422 views
--Alt-Boundary-19691.13897765 Content-description: Mail message body Well, I must agree Win32lib 59.1 is pretty useless. This doesn't work either because setWinMsgHandler() has a bug in it, ( "id" hasn't been declared) -- Author: Euman 2003 try # 2 using Win32lib without warning include Win32Lib.ew with trace trace(1) constant xPatBlt = registerw32Function(gdi32, "PatBlt", {C_POINTER, C_INT, C_INT, C_INT, C_INT, C_LONG}, C_LONG), PATCOPY = #F00021 object junk constant MainWin = createEx( Window, "Virtual Window Demo", NULL, 25, 25, 640, 480, 0, 0 ) sequence InitExtent atom hdc, memdc, hbit, hbrush, ps integer vxScreen, vyScreen vxScreen = 1280 vyScreen = 960 ps = acquire_mem(0, SIZEOF_PAINTSTRUCT) -- onOpen_MainWin function MainWnd_Proc( integer pSource, atom hWnd, atom iMsg, atom wParam, atom lParam ) if iMsg = WM_CREATE then hdc = w32Func( xGetDC, {hWnd} ) memdc = w32Func( xCreateCompatibleDC, {hdc} ) hbit = w32Func( xCreateCompatibleBitmap, { hdc, vxScreen, vyScreen } ) junk = w32Func( xSelectObject, {memdc, hbit} ) hbrush = w32Func( xGetStockObject, {WHITE_BRUSH}) junk = w32Func( xSelectObject, {memdc, hbrush} ) junk = w32Func( xPatBlt, {memdc, 0, 0, vxScreen, vyScreen, PATCOPY}) setScrollRange ( {MainWin, SB_HORZ}, 1, vxScreen ) setScrollRange ( {MainWin, SB_VERT}, 1, vyScreen ) setPenColor( MainWin, Green ) junk = w32Func(xRectangle, {memdc, 10, 10, 620, 460}) junk = w32Func( xReleaseDC, {hWnd, hdc} ) junk = w32Func( xInvalidateRect, {hWnd, NULL, 0} ) elsif iMsg = WM_PAINT then hdc = w32Func( xBeginPaint, { hWnd, ps } ) junk = w32Func( xBitBlt, {hdc, 0, 0, vxScreen, vyScreen, memdc, 0, 0, SRCCOPY} ) w32Proc( xEndPaint, { hWnd, ps } ) elsif iMsg = WM_DESTROY then junk = w32Func( xReleaseDC, {0, hdc} ) end if return {0} end function setWinMsgHandler(MainWin, {WM_CREATE, WM_PAINT, WM_DESTROY}, routine_id("MainWnd_Proc")) WinMain( MainWin, Normal ) --Alt-Boundary-19691.13897765 Content-type: text/html; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body <?xml version="1.0" ?><html> <head> <title></title> </head> <body> <div align="left"><font face="Arial"><span style="font-size:10pt">Well, I must agree Win32lib 59.1 is pretty useless.</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">This doesn't work either because setWinMsgHandler()</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">has a bug in it, ( "id" hasn't been declared)</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">-- Author: Euman 2003 try # 2 using Win32lib</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">without warning</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">include Win32Lib.ew</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">with trace</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">trace(1)</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">constant</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">xPatBlt = registerw32Function(gdi32, "PatBlt", {C_POINTER, C_INT, C_INT, C_INT, C_INT, C_LONG}, C_LONG),</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">PATCOPY = #F00021</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">object junk</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">constant</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> MainWin = createEx( Window, "Virtual Window Demo", NULL, 25, 25, 640, 480, 0, 0 )</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">sequence InitExtent</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">atom hdc, memdc, hbit, hbrush, ps</span></font></div> <div align="left"><br/> </div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">integer vxScreen, vyScreen</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> vxScreen = 1280</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> vyScreen = 960</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">ps = acquire_mem(0, SIZEOF_PAINTSTRUCT)</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">-- onOpen_MainWin</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">function MainWnd_Proc( integer pSource, atom hWnd, atom iMsg, atom wParam, atom lParam )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> if iMsg = WM_CREATE then</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt"> hdc = w32Func( xGetDC, {hWnd} )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> memdc = w32Func( xCreateCompatibleDC, {hdc} )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> hbit = w32Func( xCreateCompatibleBitmap, { hdc, vxScreen, vyScreen } )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xSelectObject, {memdc, hbit} ) </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> hbrush = w32Func( xGetStockObject, {WHITE_BRUSH}) </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xSelectObject, {memdc, hbrush} ) </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xPatBlt, {memdc, 0, 0, vxScreen, vyScreen, PATCOPY}) </span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt"> setScrollRange ( {MainWin, SB_HORZ}, 1, vxScreen )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> setScrollRange ( {MainWin, SB_VERT}, 1, vyScreen )</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt"> setPenColor( MainWin, Green )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func(xRectangle, {memdc, 10, 10, 620, 460})</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xReleaseDC, {hWnd, hdc} )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xInvalidateRect, {hWnd, NULL, 0} )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> elsif iMsg = WM_PAINT then</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> hdc = w32Func( xBeginPaint, { hWnd, ps } ) </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xBitBlt, {hdc, 0, 0, vxScreen, vyScreen, memdc, 0, 0, SRCCOPY} ) </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> w32Proc( xEndPaint, { hWnd, ps } ) </span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt"> elsif iMsg = WM_DESTROY then</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xReleaseDC, {0, hdc} )</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt"> end if</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> return {0}</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">end function</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">setWinMsgHandler(MainWin, {WM_CREATE, WM_PAINT, WM_DESTROY}, routine_id("MainWnd_Proc"))</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">WinMain( MainWin, Normal )</span></font></div> <div align="left"><br/> </div> <div align="left"></div> --Alt-Boundary-19691.13897765--