📄 frprogressdlg1.cpp.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 + -