• 您的位置我爱Aspx >> VC.Net >> <b>如何创建一个不规则形状的窗口</b>
  • <b>如何创建一个不规则形状的窗口</b>

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:13:24  关键字:
  • 如何创建一个不规则形状的窗口

    可以使用新的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 ( )

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:<b>谈VC++中的Progress控件的使用</b>
    下一篇:<b>MFC窗口位置管理详细分析及实例</b>
  • 相关文章