我爱Aspx >> VC.Net >> <b>如何创建一个不规则形状的窗口</b>可以使用新的SDK函数SetWindowRgn。该函数将绘画和鼠标消息限定在窗口的一个指定的区域,实际上使窗口成为指定的不规则形状。
使用AppWizard创建一个基于对话框的应用程序并使用资源编辑器从主对话资源中删除有的缺省控件、标题以及边界。
给对话类增加一个CRgn数据成员,以后要使用该数据成员建立窗口区域。
Class CRoundDlg : public CDialog
{ …
private :
Crgn m_rgn : // window region
…}
修改OnInitDialog函数建立一个椭圆区域并调用SetWindowRgn将该区域分配给窗口:
BOOL CRoundDlg : : OnInitDialog ( )
{
CDialog : : OnInitDialog ( )
//Get size of dialog .
CRect rcDialog ;
GetClientRect (rcDialog )
// Create region and assign to window .
m_rgn . CreateEllipticRgn (0 , 0 , rcDialog.Width( ),
rcDialog.Height ( ) )
SetWindowRgn (GetSafeHwnd ( ) , (HRGN) m_ rgn ,TRUE );
return TRUE
}
通过建立区域和调用SetWindowRgn,已经建立一个不规则形状的窗口,下面的例子程序是修改OnPaint函数使窗口形状看起来象一个球形体。
voik CRoundDlg : : OnPaint ( )
【我对这篇文章有话说?】
<b>MFC窗口位置管理详细分..[05-21]
<b>得到托盘区位置与动态显..[05-21]
<b>自己动手制作一款简洁实..[05-21]
<b>在ActiveX控件中如何动..[05-21]
<b>一个简单的学生成绩管理..[05-21]
<b>如何用非对称密码算法制..[05-21]
<b>有关注册表API函数<..[05-21]
<b>用VC++6.0的Sockets AP..[05-21]
<b>VC编程中如何操作数据库..[05-21]
<b>一个键盘程序的开发实例..[05-21]