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

📄 filedial.h

📁 DOS下的图形界面开发包
💻 H
字号:
#ifndef __FILEDIAL_H
#define __FILEDIAL_H

#include "dialog.h"
#include "dir.h"
#include "yyxctrl.h"
#include "tedit.h"
#include "tstatic.h"
#include "listscrl.h"

#define FILESPEC	MAXPATH + MAXEXT
#define MAXFILES 150
#define MAXDIRES 150

#define SD_FILEOPEN 0
#define SD_FILESAVE 1

#define EDIT_ID   11
#define FILES_ID  22
#define DIRES_ID  33

typedef class filedial_class Tfiledial;

typedef char FILENAMESTRING[40];

class filedial_class :public Tdialog {
public:
// controls
	Ttedit    *file_tedit;
	Tstatic   *dir_tstatic;
	Tlistscrl *files_listscrl;
	Tlistscrl *dires_listscrl;

	char *achFile;		// used at Quit From the Dialog, as the Path of File
// attributes
	int  dial_type; //SD_FILEOPEN or SD_FILESAVE

	int  filesnum;
	int  diresnum;

	char *files[MAXFILES];
	char *dires[MAXDIRES];

//	LPSTR FilePath;

	char pathname [150];
	char dirname  [150];

	char wildcards [150];
	char edit_filename [150];

//	char PathName[MAXPATH];
//  char Extension[MAXEXT];
//	char FileSpec[FILESPEC];

public:
	filedial_class(int ID,char *title,int left,int top,int width,int height,
		int atype, char * apath);
virtual	~filedial_class ();
virtual int  msg_handler (MSG& message);
virtual BOOL func_canclose();

protected:
// used for the string operation
	int   	analyse_edit_filename(char *buf);
	BOOL  	filedial_class::change_edit_filename();
	BOOL 	filedial_class::disk_ready (int disk_num );

	void 	filedial_class::updatelists();
	BOOL  	haswildcards(char *pathname);
	char * 	getfilename(char *pathname);

	int  filedial_class::get_sub_dires (char *dir_name,char **sub_dires) ;
	int  filedial_class::get_sub_files (char *path_name,char **sub_files);
};


/*

SD_FILEOPEN DIALOG DISCARDABLE LOADONCALL PURE MOVEABLE 20, 24, 202, 130
STYLE WS_TILED | WS_CAPTION | WS_SYSMENU | DS_SETFONT | DS_MODALFRAME
CAPTION "File Open"
FONT 8, "Helv"
BEGIN
  CONTROL "File&name:" -1, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 8, 36, 10
  CONTROL "" ID_FNAME, "EDIT", ES_OEMCONVERT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL, 42, 6, 98, 12
  CONTROL "Directory:" -1, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 20, 36, 10
  CONTROL "" ID_FPATH, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 42, 20, 98, 10
  CONTROL "&Files:" -1, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 32, 64, 10
  CONTROL "" ID_FLIST, "LISTBOX", WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_STANDARD, 6, 44, 64, 82
  CONTROL "&Directories:" -1, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 76, 32, 64, 10
  CONTROL "" ID_DLIST, "LISTBOX", WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_STANDARD, 76, 44, 64, 82
  CONTROL "&OK" IDOK, "BUTTON", WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_DEFPUSHBUTTON, 146, 5, 50, 14
  CONTROL "&Cancel" IDCANCEL, "BUTTON", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 146, 23, 50, 14
END


SD_FILESAVE DIALOG DISCARDABLE LOADONCALL PURE MOVEABLE 20, 24, 202, 130
STYLE WS_TILED | WS_CAPTION | WS_SYSMENU | DS_SETFONT | DS_MODALFRAME
CAPTION "File Save As"
FONT 8, "Helv"
BEGIN
  CONTROL "File&name:" -1, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 8, 36, 10
  CONTROL "" ID_FNAME, "EDIT", ES_OEMCONVERT | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL, 42, 6, 98, 12
  CONTROL "Directory:" -1, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 20, 36, 10
  CONTROL "" ID_FPATH, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 42, 20, 98, 10
  CONTROL "&Directories:" -1, "STATIC", WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 32, 64, 10
  CONTROL "" ID_DLIST, "LISTBOX", WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_STANDARD, 6, 44, 64, 82
  CONTROL "&OK" IDOK, "BUTTON", WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_DEFPUSHBUTTON, 146, 5, 50, 14
  CONTROL "&Cancel" IDCANCEL, "BUTTON", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 146, 23, 50, 14
END

*/

/*	TFileDialog *ptFileOpen;

	strcpy (achFile,"*.bmp");
	ptFileOpen =new TFileDialog (this,SD_FILEOPEN, achFile, NULL );
	iRetVal =GetApplication() -> ExecDialog ( ptFileOpen );

	if (iRetVal != IDOK ) return ;
*/

/*
	TFileDialog *ptFileSaveAs;

	strcpy (achFile,"*.*");
	ptFileSaveAs =new TFileDialog (this ,SD_FILESAVE, achFile, NULL );
	iRetVal =GetApplication() -> ExecDialog ( ptFileSaveAs );
	if (iRetVal == IDOK ) {
		MessageBox( Msg.Receiver, achFile, "  User Pressed Ok ", MB_OK );
	} else {
		MessageBox( Msg.Receiver, achFile, "  User Pressed Cancel ", MB_OK );
	}
*/

/*
class _EXPORT TFileDialog : public TDialog
{
public:
	LPSTR FilePath;
	char PathName[MAXPATH];
	char Extension[MAXEXT];
	char FileSpec[FILESPEC];

	TFileDialog(PTWindowsObject AParent, int ResourceId, LPSTR AFilePath,
				PTModule AModule = NULL);
	virtual BOOL CanClose();
	void SelectFileName();
	void UpdateFileName();
	BOOL UpdateListBoxes();

	static PTStreamable build();

protected:
	virtual void SetupWindow();
	virtual void HandleFName(RTMessage Msg)
		  = [ID_FIRST + ID_FNAME];
	virtual void HandleFList(RTMessage Msg)
		  = [ID_FIRST + ID_FLIST];
	virtual void HandleDList(RTMessage Msg)
		  = [ID_FIRST + ID_DLIST];

	TFileDialog(StreamableInit) : TDialog(streamableInit) {};

private:
	virtual const Pchar streamableName() const
		{ return "TFileDialog"; }
};


*/

#endif

⌨️ 快捷键说明

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