工控编程吧
标题:
23上位机VC MFC设计椭圆形程序界面
[打印本页]
作者:
qq263946146
时间:
2015-11-14 21:51
标题:
23上位机VC MFC设计椭圆形程序界面
23上位机VC MFC设计椭圆形程序界面
功能展示
将程序界面设计成不规则窗口,已经可以在众多的娱乐软件中看见,用户被这些软件深深吸引,因为不规则窗口一定程序上减少以往单调的矩形窗口带来的乏味喊,提高操作程序的兴趣,我们当前这例程实现椭圆形不规则窗体,效果如图
(, 下载次数: 0)
上传
点击文件名下载附件
要点提示
椭圆形窗口效果主要是通过CWnd类的SetWindowRgn函数来实现不规则效果的, SetWindowRgn函数主要实现 将窗口设置成特殊矩形的功能,语法:
int SetWindowRgn( HRGN hRgn, BOOL bRedraw );
hRgn HRGN对象句柄。
bRedraw是否重绘。
实现功能
1.新建一个对话框的应用程序
2.添加一个位图做为程序界面的背景
3.在程序对话框的OnInitDialog()函数中实现窗口的椭圆形效果
CRgn wndRgn;
CBitmap BT;
BITMAP bm;
BT.LoadBitmap(IDB_BITMAP1);
BT.GetBitmap(&bm);
wndRgn.CreateEllipticRgn(0,0,bm.bmWidth,bm.bmHeight);
SetWindowRgn((HRGN)wndRgn,true);
4 .在OnPaint() 函数中加载窗口位图
CPaintDC dc(this);
CRect rect;
GetWindowRect(&rect);
CDC memDC;
CBitmap cBitmap;
CBitmap* pOldMemBmp=NULL;
cBitmap.LoadBitmap(IDB_BITMAP1);
memDC.CreateCompatibleDC(&dc);
pOldMemBmp=memDC.SelectObject(&cBitmap);
dc.BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY);
if(pOldMemBmp)
memDC.SelectObject(pOldMemBmp);
5.最后我们还得将对话框资源的属性进行设置,将对话框的边框属性设置为NONE,将类型设置为POPUP
这样我们就实现了椭圆形窗口,但是我们的窗口却不能拖动,如果想用鼠标拖动窗口的话,我们得对鼠标右键按钮下消息进行小小处理:在OnLButtonDown()函数中发送一个消息便可, SendMessage(WM_SYSCOMMAND,SC_MOVE|HTCAPTION,0);;
我们演示椭圆形窗口实现的整个过程
[iqiyi]http://player.video.qiyi.com/4fa0a817a92935094d0f263eb4eb3cab/0/0/w_19rt8zf3mp.swf-albumId=4891743309-tvId=4891743309-isPurchase=0-cnId=27[/iqiyi]
源码及视频下载
(仅在电脑可见)
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4