可以借鉴<br>EMRFRAMERGN<br>The EMRFRAMERGN structure contains members for the FrameRgn enhanced metafile record.<br>typedef struct tagEMRFRAMERGN {<br> EMR emr; <br> RECTL rclBounds; <br> DWORD cbRgnData; <br> DWORD ihBrush; <br> SIZEL szlStroke; <br> BYTE RgnData[1]; <br>} EMRFRAMERGN, *PEMRFRAMERGN; <br>Members<br>RgnData <br>Buffer containing RGNDATA structure. <br>及RGNDATA的说明<br>The RGNDATA structure contains a header and an array of rectangles that compose a <br>region. The rectangles are sorted top to bottom, left to right. They do not overlap.<br>typedef struct _RGNDATA { <br> RGNDATAHEADER rdh; <br> char Buffer[1]; <br>} RGNDATA, *PRGNDATA; <br>再看关于Region的说明:<br>A region is a rectangle, polygon, or ellipse (or a combination of two or more <br>of these shapes) that can be filled, painted, inverted, framed, and used to<br> perform hit testing (testing for the cursor location). <br><br>我觉得我以前的想法是错误的,<br>它的实现可能是判断rectangles中的有效外边线,再画线。<br><br>