⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frprogressdlg1.cpp.bak

📁 手机智能卡开发
💻 BAK
字号:
// FrProgressDlg.cpp : implementation file
//

#include "stdafx.h"
#include "FrProgressDlg1.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define	GLOBAL_OVERLEN		20
#define	GLOBAL_OVERWIDTH	20
 /////////////////////////////////////////////////////////////////////////////
// CFrProgressDlg dialog


CFrProgressDlg::CFrProgressDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFrProgressDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFrProgressDlg)
	//}}AFX_DATA_INIT
}

void CFrProgressDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFrProgressDlg)
	DDX_Control(pDX, IDC_PROGRESS1, m_MyProgress);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CFrProgressDlg, CDialog)
	//{{AFX_MSG_MAP(CFrProgressDlg)
	ON_WM_TIMER()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFrProgressDlg message handlers
 
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
BOOL CFrProgressDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
/*
		//透明效果
		//加入WS_EX_LAYERED扩展属性  
		SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000); 
		HINSTANCE hInst = LoadLibrary("User32.DLL");
		if(hInst)
		{
			MYFUNC fun = NULL;
			//取得SetLayeredWindowAttributes函数指针  
			fun=(MYFUNC)GetProcAddress(hInst,"SetLayeredWindowAttributes");
			if(fun)
				fun(this->GetSafeHwnd(),128,128,2);
			FreeLibrary(hInst); 
		}*/
	
	//根据路径创建不规则窗体
	CDC* pDC;
	//CreateRoundRectRgn 
	RECT rect;
	this->GetClientRect(&rect);

	//设置窗体为圆角形
	CRgn rgn;
	rgn.CreateRoundRectRgn(rect.left,rect.top,rect.right,rect.bottom,8,8);	
	SetWindowRgn(rgn,TRUE);
	

	/*
	//设置为透明模式
		pDC = this->GetDC();
		::BeginPath(pDC->m_hDC);
		
			
		::SetBkMode(pDC->m_hDC, TRANSPARENT);		
		//
		
		
		pDC->MoveTo(rect.left, rect.top);
		pDC->LineTo(rect.right, rect.top);
		
		pDC->LineTo(rect.right, rect.bottom - GLOBAL_OVERLEN);
		
		pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom - GLOBAL_OVERLEN);
		pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom);
		pDC->LineTo(rect.left + (rect.right - rect.left) / 2 - GLOBAL_OVERWIDTH, rect.bottom - GLOBAL_OVERLEN);
		
		pDC->LineTo(rect.left, rect.bottom - GLOBAL_OVERLEN);
		pDC->LineTo(rect.left, rect.top);
		//pDC->CreateRoundRectRgn(0,0,0,0,0,0);
	
		::EndPath(pDC->m_hDC);
		
		
		hRgn = ::PathToRegion(pDC->m_hDC);
		 this->SetWindowRgn(hRgn, TRUE);
		//end 根据路径创建不规则窗体*/
	
	
 	m_MyProgress.SetRange(0, 100);
	m_MyProgress.SetPos(0);
	m_MyProgress.SetStep(2);
	//m_nTimer = SetTimer(1, 100, NULL);
	GetDlgItem(IDC_STATIC_TIP)->SetWindowText(m_strTipInfor);
	CenterWindow();
	
	return TRUE;
}

void CFrProgressDlg::SetTipInfor(CString strInfor)
{
	m_strTipInfor = strInfor;
	if(m_hWnd)
		GetDlgItem(IDC_STATIC_TIP)->SetWindowText(m_strTipInfor);
	
}

void CFrProgressDlg::OnTimer(UINT nIDEvent) 
{
	return;
	 
	if (nIDEvent == m_nTimer)
	{
		int nPos = m_MyProgress.GetPos();
		int nLower, nUpper;
		m_MyProgress.GetRange(nLower, nUpper);	
		if (nPos >= nUpper)
			m_MyProgress.SetPos(nPos-100);
		else
			m_MyProgress.SetPos(nPos+2);
	}

	CDialog::OnTimer(nIDEvent);
}

//void CFrProgressDlg::ResetCtlrPos()
//{
//	m_MyProgress.SetPos(0);
//	m_MyProgress.ShowWindow(SW_SHOW);
//}

//void CFrProgressDlg::StartProgress()
//{
//	ShowWindow(SW_SHOW);
//	m_MyProgress.SetRange(0, 100);
//	m_MyProgress.SetPos(0);
////	m_MyProgress.ShowWindow(SW_SHOW);
//	if (m_nTimer ==0)
//		m_nTimer = SetTimer(1, 100, NULL);
//	GetDlgItem(IDC_STATIC_TIP)->SetWindowText(m_strTipInfor);
////	Invalidate();
//}
//
//void CFrProgressDlg::EndProgress()
//{
//	if (m_nTimer != 0) {
//		KillTimer(m_nTimer);
//		m_nTimer = 0;
//	}
//	ShowWindow(SW_HIDE);
//}

void CFrProgressDlg::OnOK() 
{
	//KillTimer(m_nTimer);
	CDialog::OnOK();
}

void CFrProgressDlg::OnDestroy() 
{
//	KillTimer(m_nTimer);
	CDialog::OnDestroy();
}

void CFrProgressDlg::SetProgress(int iPos)
{
	m_MyProgress.SetPos(iPos);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -