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

📄 window.cpp

📁 计算机信息的保密显得越来越重要。数据保密变换
💻 CPP
字号:
// Window.cpp: implementation of the CWindow class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MixedCS.h"
#include "Window.h"
#include "MyFileDialog.h"
#include <shlobj.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CWindow::CWindow()
{
	wnd.m_hWnd = GetActiveWindow();
	wnd.GetWindowText(caption);
}

CWindow::~CWindow()
{
	EndWaitCursor();
	wnd.m_hWnd = 0;//必须置0,否则Windows将关闭当前窗口
}

///////////////////////////////////////////////////////////////////////////////
// CWindows Functions
///////////////////////////////////////////////////////////////////////////////
#define STR_MAXLEN			1000

#define CHECK(x)			{if( !(x) ) return false;}
#define CHECK_MSG(x,msg)	{if( !(x) ) {ShowMessage(msg);return false;}}

/******************************************************************************/
//	名称:ShowWaitCursor()
//	功能:显示等待光标
//  参数:
//	返回:
/******************************************************************************/
void CWindow::ShowWaitCursor()
{
	wnd.m_hWnd = GetActiveWindow();
	wnd.GetWindowText(caption);
	wnd.BeginWaitCursor();
}
/******************************************************************************/
//	名称:EndWaitCursor
//	功能:结束等待光标
//  参数:
//	返回:
/******************************************************************************/
void CWindow::EndWaitCursor()
{
	wnd.EndWaitCursor();
    wnd.SetWindowText(caption);
}
/******************************************************************************/
//	名称:SetWindowCaption
//	功能:设置窗口标题
//  参数:
//	返回:
/******************************************************************************/
void CWindow::SetWindowCaption(char *Str,int v1,int v2,int v3)
{
	CString	    newname;
	newname.Format(Str,v1,v2,v3);
	wnd.SetWindowText(newname);
}
/******************************************************************************/
//	名称:ShowMessage
//	功能:显示消息框
//  参数:
//	返回:
/******************************************************************************/
int CWindow::ShowMessage(const char *msg,const char *title,UINT flage)
{
	CHECK( msg && title )
	return MessageBox(GetActiveWindow(),msg,title,flage);
}
/******************************************************************************/
//	名称:InputKeyStr
//	功能:打开选择文件对话框,导入字符串
//  参数:
//	返回:导入成功返回true,否则返回false
/******************************************************************************/
bool CWindow::InputStr(CString &Str)
{
	CString Filter= "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||";

	CMyFileDialog FileDlg (TRUE, NULL, NULL, OFN_HIDEREADONLY, Filter);

    CHECK( FileDlg.DoModal()==IDOK )

	char buf[STR_MAXLEN+1];

	CHECK( GetStrFromFile(buf,FileDlg.GetPathName().GetBuffer(0)) )
    Str = buf;

	return true;
}
/******************************************************************************/
//	名称:OutputKeyStr
//	功能:打开选择文件对话框,导出字符串
//  参数:
//	返回:导出成功返回true,否则返回false
/******************************************************************************/
bool CWindow::OutputStr(CString &Str)
{
	CHECK_MSG( !Str.IsEmpty(), "空内容!  " )

	CString Filter= "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||";

	CMyFileDialog FileDlg(FALSE, "txt", NULL, OFN_HIDEREADONLY, Filter);

    CHECK( FileDlg.DoModal()==IDOK )

	CHECK( SaveStrToFile(Str.GetBuffer(0),FileDlg.GetPathName().GetBuffer(0)) )

	return true;
}
/******************************************************************************/
//	名称:GetFolder
//	功能:目录选择对话框
//  参数:
//	返回:选择成功返回true,否则返回false
/******************************************************************************/
bool CWindow::GetFolder(CString &Folder)
{
	BROWSEINFO	bi; 
	ITEMIDLIST	*pidl; 
    char		Dir[256];

	memset(&bi, 0, sizeof(bi));
	bi.pszDisplayName = Dir; 
	bi.lpszTitle = "请选择目录"; 
	bi.ulFlags = BIF_RETURNONLYFSDIRS; 

	pidl = SHBrowseForFolder(&bi);
	CHECK( pidl!=NULL ) 
	SHGetPathFromIDList(pidl,Dir);
    GlobalFree(pidl);
	Folder = Dir;

	return true;
}
/******************************************************************************/
//	名称:IsFileExist
//	功能:检查文件是否存在
//  参数:
//	返回:存在返回true,否则返回false
/******************************************************************************/
bool CWindow::IsFileExist(const char *File)
{
	HFILE	fh;

	CHECK( File )
	CHECK( (fh=_lopen(File,OF_READ)) != -1 )

	_lclose(fh);
	return	true;
}
/******************************************************************************/
//	名称:GetStrFromFile
//	功能:从文件中读取字符串
//  参数:
//	返回:读取成功返回true,否则返回false
/******************************************************************************/
bool CWindow::GetStrFromFile(char *Str,const char *File)
{
	CHECK( Str && File );

    HFILE	fh;

    CHECK_MSG( (fh=_lopen(File,OF_READ)) != -1, "错误:无法打开文件! " )

	int len = _lread(fh,Str,STR_MAXLEN);
    Str[len] = '\0'; 
   
    _lclose(fh);
	return true;
}
/******************************************************************************/
//	名称:SaveStrToFile
//	功能:保存字符串到文件中
//  参数:
//	返回:保存成功返回true,否则返回false
/******************************************************************************/
bool CWindow::SaveStrToFile(const char *Str,const char *File)
{
	CHECK( Str && File );

    HFILE	fh;

	if( IsFileExist(File) )
		CHECK( IDYES == ShowMessage("该文件已存在,是否覆盖? ","提示",
			                        MB_YESNO | MB_ICONQUESTION) )
    CHECK_MSG( (fh=_lcreat(File,0)) != -1, "错误:无法创建文件! ")
	_lwrite(fh,Str,strlen(Str));

    _lclose(fh);
	return true;
}
/******************************************************************************/
//	名称:GetFileNameWithExt
//	功能:获取文件名(带扩展名)
//  参数:
//	返回:文件名(带扩展名)
/******************************************************************************/
CString CWindow::GetFileNameWithExt(const CString &File)
{
    int i,j=File.GetLength();
    CString Name;

	for(i=j-1; i>=0 && File.GetAt(i)!='\\'; --i);
	Name = (i<0 ) ? File : File.Right(j-i-1);

	return Name;
}
/******************************************************************************/
//	名称:GetFileNameNoExt
//	功能:获取文件名(无扩展名)
//  参数:
//	返回:文件名(无扩展名)
/******************************************************************************/
CString CWindow::GetFileNameNoExt(const CString &File)
{
    CString Name = GetFileNameWithExt(File);
	CString Ext  = GetExtName(Name);
	int		len  = Ext.IsEmpty() ? 0 : Ext.GetLength()+1;

	Name = Name.Left(Name.GetLength()-len);

	return Name;
}
/******************************************************************************/
//	名称:GetExtName
//	功能:获取扩展名
//  参数:
//	返回:扩展名
/******************************************************************************/
CString CWindow::GetExtName(const CString &File)
{
    int i,j=File.GetLength();
    CString Ext;

	for(i=0; i<j && File.GetAt(i)!='.'; ++i);
	Ext = i<j ? File.Right(j-i-1) : "";

	return Ext;
}
/******************************************************************************/
//	名称:GetPath
//	功能:获取路径
//  参数:
//	返回:路径
/******************************************************************************/
CString CWindow::GetPath(const CString &File)
{
    int i,j=File.GetLength();
    CString Path;

	for(i=j-1; i>=0 && File.GetAt(i)!='\\'; --i);
	Path = (i<0 ) ? "" : File.Left(i);

	return Path;
}

///////////////////////////////////////////////////////////////////////////////
// End of Files
///////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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