Win32lib (simple app) not working
- Posted by euman at bellsouth.net Aug 18, 2003
- 409 views
--Alt-Boundary-2122.7869453 Content-description: Mail message body Hey Win32lib folks, The code (below) should work with Win32lib 59.1 shouldn't it? I basically made a mirror of an API program that works as an example for someone who uses Win32lib. (less a couple hundred lines ofcourse) Im uncertain as to why I would "HAVE" to create a Win32lib Pixmap to do the very same thing Im trying to accomplish here... (this way would be tons faster than the standard pixmap.) -- Author: Euman 2003 without warning include Win32Lib.ew 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 hdc = 0 memdc = 0 integer vxScreen, vyScreen vxScreen = 1280 vyScreen = 960 -- onOpen_MainWin procedure onCreate_MainWin( integer self, integer event, sequence parms ) hdc = w32Func( xGetDC, {getHandle( MainWin )} ) 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} ) if not w32Func( xPatBlt, {memdc, 0, 0, vxScreen, vyScreen, PATCOPY}) then end if 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, {getHandle(MainWin), hdc} ) junk = w32Func( xInvalidateRect, {getHandle(MainWin), NULL, 0} ) end procedure setHandler(MainWin, w32HActivate, routine_id("onCreate_MainWin")) ps = acquire_mem(0, SIZEOF_PAINTSTRUCT) -- onPaint_MainWin procedure onPaint_MainWin( integer self, integer event, sequence parms ) hdc = w32Func( xBeginPaint, { getHandle(MainWin), ps } ) if not w32Func( xBitBlt, {hdc, 0, 0, vxScreen, vyScreen, memdc, 0, 0, SRCCOPY} ) then end if w32Proc( xEndPaint, { getHandle(MainWin), ps } ) end procedure setHandler(MainWin, w32HPaint, routine_id("onPaint_MainWin")) -- onClose_MainWin procedure onClose_MainWin( integer self, integer event, sequence parms ) junk = w32Func( xReleaseDC, {0, hdc} ) end procedure setHandler(MainWin, w32HClose, routine_id("onClose_MainWin")) WinMain( MainWin, Normal ) --Alt-Boundary-2122.7869453 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">Hey Win32lib folks,</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">The code (below) should work with Win32lib 59.1 shouldn't it?</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">I basically made a mirror of an API program that works as an </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">example for someone who uses Win32lib. </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">(less a couple hundred lines ofcourse) </span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">Im uncertain as to why I would "HAVE" to create a Win32lib Pixmap</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">to do the very same thing Im trying to accomplish here...</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">(this way would be tons faster than the standard pixmap.)</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">-- Author: Euman 2003</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"><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"><font face="Arial"><span style="font-size:10pt">)</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"><font face="Arial"><span style="font-size:10pt"> hdc = 0</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> memdc = 0</span></font></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">-- onOpen_MainWin</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">procedure onCreate_MainWin( integer self, integer event, sequence parms )</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( xGetDC, {getHandle( MainWin )} )</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"> if not w32Func( xPatBlt, {memdc, 0, 0, vxScreen, vyScreen, PATCOPY}) then end if </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, {getHandle(MainWin), hdc} )</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> junk = w32Func( xInvalidateRect, {getHandle(MainWin), 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">end procedure</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">setHandler(MainWin, w32HActivate, routine_id("onCreate_MainWin"))</span></font></div> <div align="left"><br/> </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">-- onPaint_MainWin</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">procedure onPaint_MainWin( integer self, integer event, sequence parms )</span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt"> hdc = w32Func( xBeginPaint, { getHandle(MainWin), ps } ) </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> if not w32Func( xBitBlt, {hdc, 0, 0, vxScreen, vyScreen, memdc, 0, 0, SRCCOPY} ) then end if </span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt"> w32Proc( xEndPaint, { getHandle(MainWin), ps } ) </span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">end procedure</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">setHandler(MainWin, w32HPaint, routine_id("onPaint_MainWin"))</span></font></div> <div align="left"><br/> </div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">-- onClose_MainWin</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">procedure onClose_MainWin( integer self, integer event, sequence parms )</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( xReleaseDC, {0, hdc} ) </span></font></div> <div align="left"><br/> </div> <div align="left"><font face="Arial"><span style="font-size:10pt">end procedure</span></font></div> <div align="left"><font face="Arial"><span style="font-size:10pt">setHandler(MainWin, w32HClose, routine_id("onClose_MainWin"))</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-2122.7869453--