⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0506004.htm

📁 VC知识库5_chm_decompile_20040520_210715
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title></title>
<link rel="stylesheet" type="text/css" href="../../vckbase.css">
</head>

<body>

<div align="justify">
  <table border="0" width="100%" class="font" height="57">
    <tr>
      <td width="27%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
      <font color="#800080">VC知识库(五)</font>
      </td>
      <td width="73%" height="6" class="bigfont" bgcolor="#B8CFE7" align="center" bordercolor="#800080">
      <font color="#800080">www.vckbase.com</font>
      </td>
    </tr>
    <tr>
      <td width="100%" height="4" class="header" valign="top" align="center" colspan="2">
      <hr>
      </td>
    </tr>
    <tr>
      <td width="100%" height="17" class="header" valign="top" align="center" colspan="2">
      <strong><big>多边形窗口</big></strong>
      </td>
    </tr>
    <tr>
      <td width="100%" height="17" class="info" align="center" colspan="2">
      <strong><big>闻怡洋</big></strong>
      </td>  
    </tr>  
    <tr> 
      <td width="100%" height="22" class="font" colspan="2">
        <hr>
      </td>  
    </tr> 
    <tr> 
      <td width="100%" height="5" class="font" colspan="2"> 



<p>当你看腻了矩形窗口后,你想不想改变你窗口的形状呢?你需要做的很简单。</p>



<p>产生一个CRgn对象,并调用int CWnd::<span class="op">SetWindowRgn( HRGN </span><span 
 
class="p">hRgn</span><span class="op">, BOOL </span><span class="p">bRedraw</span><span 
 
class="op"> );</span></p> 
 
 
 
<p>下面将讲述具体方法:</p> 
 
 
 
<p>在窗口的OnCreate中(窗口必须为WS_POPUP风格,其它的我没有试过)下面的代码将创建一个三角形的窗口。</p> 
 
 
 
<p>int ctW::OnCreate(LPCREATESTRUCT lpCreateStruct) <br> 
 
{<br> 
 
&nbsp;&nbsp;&nbsp; if (CWnd::OnCreate(lpCreateStruct) == -1)<br> 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br> 
 
&nbsp;&nbsp;&nbsp; POINT pt[3];<br> 
 
&nbsp;&nbsp;&nbsp; pt[0].x=100;<br>

&nbsp;&nbsp;&nbsp; pt[0].y=20;<br>

&nbsp;&nbsp;&nbsp; pt[1].x=0;<br>

&nbsp;&nbsp;&nbsp; pt[1].y=150;<br>

&nbsp;&nbsp;&nbsp; pt[2].x=180;<br>

&nbsp;&nbsp;&nbsp; pt[2].y=150;<br>

<br>

&nbsp;&nbsp;&nbsp; m_rgn.CreatePolygonRgn(pt,3,WINDING);<br>

&nbsp;&nbsp;&nbsp; SetWindowRgn(m_rgn,1);<br>

&nbsp;&nbsp;&nbsp; <br>

&nbsp;&nbsp;&nbsp; // TODO: Add your specialized creation code here<br> 
 
&nbsp;&nbsp;&nbsp; <br> 
 
&nbsp;&nbsp;&nbsp; return 0;<br> 
 
}</p> 
 
 
 
<p>CWnd::GetWindowRgn(...)将通过返回值告诉你该多边形是否为一个单独的矩形。<br> 
 
请注意该RGN坐标是以原来窗口的矩形为零点坐标的而不是以屏幕坐标为零点坐标。你可以利用CRgn::CombineRgn(...)将多个RGN并起了形成自己所需要的形状。</p> 
 
 
 
      </td>     
    </tr>    
    <tr> 
      <td width="100%" height="12" class="font" colspan="2">  
      </td>     
    </tr> 
    <tr> 
      <td width="100%" height="6" class="font" colspan="2">  
      </td>     
    </tr> 
    <tr> 
      <td width="100%" height="8" class="font" colspan="2">  
      </td>     
    </tr> 
    <tr>    
      <td width="100%" height="17" class="font" colspan="2"></td>     
    </tr>    
  </table>     
</div>     
     
</body>     
     
</html>     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -