evc中透明控件的实现

evc中透明控件的实现

ID:15387197

大小:40.00 KB

页数:4页

时间:2018-08-03

evc中透明控件的实现_第1页
evc中透明控件的实现_第2页
evc中透明控件的实现_第3页
evc中透明控件的实现_第4页
资源描述:

《evc中透明控件的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2008年05月09日13:38:37EVC中透明控件的实现本文从创建一个工程开始详细说明如何用EVC实现WINCE应用程序下的透明控件(这里实现按钮和STATIC)。1.  新建一个MFC对话框工程取名TransButton2.  在ResourceView处插入一背景图片IDB_BITMAP13.  在对话框中拉4个控件:两个按钮,两个STATIC4.  增加TransButtonDlg.h文件中增加如下3个类成员HBRUSHGetBkBrush(HWNDhWnd,UINTnID,HBITMAPhBmBk);HBITMAPm_hBm

2、Bkgnd;//对话框背景图片HBRUSHm_hBrCtl[2];//控件背景画刷5.  在TransButtonDlg.cpp中增加GetBkBrush()的实现HBRUSHCTransButtonDlg::GetBkBrush(HWNDhWnd,UINTnID,HBITMAPhBmBk){#define_X(x)(x.left)#define_Y(x)(x.top)#define_W(x)  (x.right-x.left)#define_H(x)(x.bottom-x.top)HWNDhWndCtrl;hWndCtrl=::Get

3、DlgItem(hWnd,nID);HBRUSHhBrushCtrl=NULL;if(NULL!=hWndCtrl){  RECTrcCtrl;  ::GetWindowRect(hWndCtrl,&rcCtrl);  ::ScreenToClient(hWnd,(LPPOINT)&rcCtrl);  ::ScreenToClient(hWnd,((LPPOINT)&rcCtrl)+1);  HDChDC=::GetDC(hWnd);  HDChMemDCBk=CreateCompatibleDC(hDC);  HDChMemDCCtr

4、l=CreateCompatibleDC(hDC);  HBITMAPhBmCtrl=CreateCompatibleBitmap(hDC,_W(rcCtrl),_H(rcCtrl));  HBITMAPhBmOldBk;  HBITMAPhBmOldCtrl;  hBmOldBk=(HBITMAP)::SelectObject(hMemDCBk,hBmBk);  hBmOldCtrl=(HBITMAP)::SelectObject(hMemDCCtrl,hBmCtrl);  ::BitBlt(hMemDCCtrl,0,0,_W(rcC

5、trl),_H(rcCtrl),hMemDCBk,_X(rcCtrl),_Y(rcCtrl),SRCCOPY);  ::SelectObject(hMemDCCtrl,hBmOldCtrl);  ::SelectObject(hMemDCBk,hBmOldBk);    hBrushCtrl=::CreatePatternBrush(hBmCtrl);  DeleteObject(hBmCtrl);  ::DeleteDC(hMemDCBk);  ::DeleteDC(hMemDCCtrl);  ::ReleaseDC(hWnd,hDC

6、);}returnhBrushCtrl;}6.  在OnInitDialog()中增加下面一段截取控件所在部分的图片:m_hBmBkgnd=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));if(m_hBmBkgnd){  m_hBrCtl[0]=GetBkBrush(GetSafeHwnd(),IDC_BUTTON_TEST1,m_hBmBkgnd);  m_hBrCtl[1]=GetBkBrush(GetSafeHwnd(),IDC_STATIC_TE

7、ST1,m_hBmBkgnd);}7.  增加WM_PAINT的处理函数,并在函数中增加画背景的部分(OnPaint()函数):CDCmemDC;CBitmapbmBkgnd;bmBkgnd.Attach(m_hBmBkgnd);memDC.CreateCompatibleDC(&dc);CBitmap*pOldBm=memDC.SelectObject(&bmBkgnd);BITMAPbm;bmBkgnd.GetObject(sizeof(bm),&bm);dc.BitBlt(0,0,bm.bmWidth,bm.bmHeight,&m

8、emDC,0,0,SRCCOPY);memDC.SelectObject(pOldBm);bmBkgnd.Detach();8.  增加WM_CTLCOLOR的处理函数,并在其中增加画控件背景的部分:if(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。