设为首页 加入收藏

TOP

VC创建圆角窗体
2015-01-25 00:03:52 】 浏览:717
Tags:创建 圆角 窗体

有时候根据具体需求,我们可能要改变窗口的形状。使用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); 
} 



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇回调函数中调用类中的非静态成员.. 下一篇VC实现窗口最小化至托盘

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目