VC创建圆角窗体

有时候根据具体需求,我们可能要改变窗口的形状。使用API函数SetWindowRgn可以改变一个窗体的可见范围。

使用API函数CreateRoundRectRgn()函数可以创建一个圆角矩形区域。

图片ID为:IDB_BACKBMP

BOOL CDemoDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	// when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	// TODO: Add extra initialization here
	m_back.LoadBitmap(IDB_BACKBMP);
	CRgn rgn;
	rgn.CreateRoundRectRgn(3,3,700,650,20,20);
	SetWindowRgn(rgn,TRUE);

	return TRUE;  // return TRUE  unless you set the focus to a control
}
void CDemoDlg::OnPaint()
{
	CPaintDC dc(this); // device context for painting
	CDC picDC;
	picDC.CreateCompatibleDC (&dc);

	CBitmap *pOldBmp;
	pOldBmp = picDC.SelectObject (&m_back);
	BITMAP bm;
	m_back.GetBitmap(&bm);
	dc.BitBlt (0,0,bm.bmWidth ,bm.bmHeight,&picDC,0,0,SRCCOPY);
	dc.SelectObject(pOldBmp);
}
void OnSize(UINT nType, int cx, int cy)
{
	CDialog::OnSize(nType, cx, cy); 

	// TODO: 在此处添加消息处理程序代码
	CRgn MyRgn;
	CRect rect;
	GetWindowRect(&rect);
	rect -= rect.TopLeft();
	MyRgn.CreateRoundRectRgn(rect.left,rect.top, rect.right, rect.bottom, 3,3);
	SetWindowRgn(MyRgn,TRUE);
} 
时间: 2024-08-28 15:09:00

VC创建圆角窗体的相关文章

VC创建圆角窗体2

为了实现圆角的对话框窗口,这里主要用两个函数, CreateRoundRectRgn,和SetWindowRgn 程序先通过GetWindowRgn函数得到窗口矩形,然后通过CreateRoundRectRgn函数创建一个圆角矩形,最后通过SetWindowRgn函数改变窗口的形状. 具体操作如下: 1  打开"class view",右击"CMyDlg",出现一个菜单,选择"AddWindow Message Handler.." 2  之后在

WPF换肤之一:创建圆角窗体

原文:WPF换肤之一:创建圆角窗体 我们都期望自己的软件能够有一套看上去很吸引人眼球的外衣,使得别人看上去既专业又有美感.这个系列就带领着大家一步一步的讲解如何设计出一套自己的WPF的窗体皮肤,如果文中有任何错误或者不足,还请指出. WPF是微软大战略中的一个重心所在,学习WPF可谓是一举多得:首先,学习WPF可以让你了解SilverLight的80%:其次,XAML语言可以让你快速的入手WCF和WF:更甚者,就是WPF给予DX渲染核心,抛弃了传统WINFORM以GDI+为主的渲染方式,使得界面

C# 开发圆角窗体

因为项目需要做个Winform的随机启动的数据上传工具,用Visual Studio的窗体感觉太丑了,就想进行优化,反正就一个窗体,上面也没啥按钮,就不要标题栏了,就搞一个圆角的窗体好了,搞个漂亮的背景图片.上面搞一个最小化和关闭按钮.把窗体设置为圆角窗口的操作如下: 1.把窗体frmMain的FormBorderStyle属性设置为None,去掉窗体的边框,让窗体成为无边框的窗体. 2.设置窗体的Region属性,该属性设置窗体的有效区域,我们把窗体的有效区域设置为圆角矩形,窗体就变成圆角的.

VC中获取窗体句柄的各种方法

AfxGetMainWnd AfxGetMainWnd获取自身窗体句柄HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow函数功能:该函数检查与特定父窗体相联的子窗体z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗体的句柄. 函数原型:HWND GetTopWindow(HWND hWnd):參数: hWnd:被查序的父窗体的句柄.假设该參数为NULL,函数返回Z序顶部的窗体句柄.返回值:    假设函数成功,返回值为在Z序顶部的子窗

GUI——AWT框架和容器,创建简单窗体

GUI概述:GUI(Graphical User Interface)—图形化用户界面.用户和程序之间可以通过GUI能方便友好地进行交互,在Java语言中,JFC(Java Foundation Classed)是开发GUI的API集,它主要包含以下几个部分: a)   AWT(抽象窗口工具包):Java开发用户界面最初的工具包,是建立JFC的主要基础; b)   Swing组件:建立在AWT之上,新的,功能更强大的图形组件包; c)   JAVA 2D:实现高质量的二维图形; AWT框架: ①

C#创建不规则窗体的3种方式详解

现在,C#创建不规则窗体不是一件难事,下面总结一下: 一.自定义窗体 一般为规则的图形,如圆.椭圆等. 做法:重写Form1_Paint事件(Form1是窗体的名字),最简单的一种情况如下: System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath(); shape.AddEllipse(0,0,this.Height, this.Width); this.Region = ne

MySql 服务器 创建Web窗体

1.创建Web窗体: 选择的是Visual C# 2. 3. 4. 5. 6.

WPF 采用Border创建圆角

通过设置可以创建圆角border的CornerRadius属性其边框呈现圆角样式 代码: <Border Height="50" Background="Red" CornerRadius="20,0,0,0" > 效果图: 位置说明: CornerRadius="左,右,右下,左下" 提示: 如过圆角处有颜色,请将外层容器的背景色设置为透明 Background="Transparent" 版

EXtJS 创建一个窗体Window

Ext.onReady(function(){ //创建的窗体默认是hidden,需要调用show方法显示 Ext.create("Ext.window.Window",{ title:'窗体', height:400, width:300, layout:'fit', //限制边界只能在浏览器范围内 constrain:true, //限制标题不能超过浏览器范围 // constrainHeader:true, //模态窗体 modal:true, //模态窗体 plain:true