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

📄 myframe.h

📁 winsail v2.0是用于DOS下的图形界面空间系统
💻 H
📖 第 1 页 / 共 4 页
字号:
/*-----------------------------------------------------------------------*/
/*   FS-MTS  1.0  Ver.                                                   */
/*   Copyright (C) 2002 FIRST SAIL                                       */
/*   All Rights Reserved                                                 */
/*   Warning:                                                            */
/*       This program author is GuoHeng,this system is protected         */
/*   by copyright law and international Treaties . Unauthorized          */
/*   reproduction of  distribution of this  system, or any portion       */
/*   of it , may result in severe civil and criminal penalties ,         */
/*   and will be prosecuted to the maximum extern possible under         */
/*   the law.                                                            */
/*                                                                       */
/*   Update Date:2002-06-25                                              */
/*   Update Time:22:35:00                                                */
/*-----------------------------------------------------------------------*/

#ifndef   _MYFRAME_H__
#define   _MYFRAME_H__
/***********************************/
#include <stdlib.h>
#include <stdio.h>
#include <bios.h>
#include <io.h>
#include <conio.h>
#include <graphics.h>
#include <dir.h>
#include <string.h>
#include <alloc.h>
#include <dos.h>
#include <time.h>
#include <math.h>
#include <malloc.h>

#include <Symbol.h>
#include <Mouse.h>
#include <Memory.h>
#include <HglgPrit.h>
#include <DownComm.h>
#include <Register.h>
#include <Listing.h>
#include <SVga_Dev.h>
#include <Kernel.h>
#include <Graph.h>
#include <Socket3.h>
#include <NewMath.h>

//#include <NewMath.h>
//#include <barcode.h>
//#include <Relay.h>


#define GROBAL_CHARACTER_MAX  30

_CLASSDEF(CObject);
_CLASSDEF(CWindow);
_CLASSDEF(CButton);
_CLASSDEF(CMinButton);
_CLASSDEF(CMaxButton);
_CLASSDEF(CCloseButton);
_CLASSDEF(CEdit);
_CLASSDEF(CDialog);
_CLASSDEF(CBar);
_CLASSDEF(CMenu);
_CLASSDEF(CRadio);
//_CLASSDEF(CList);
_CLASSDEF(CScrollBar);
_CLASSDEF(CHScrollBar);
_CLASSDEF(CVScrollBar);
_CLASSDEF(CListBox);
_CLASSDEF(CComboBox);

#ifndef CTRL_BASE
#define CTRL_BASE

#define OBJECTBASE   0001
#define LABELBASE    1001
#define EDITBASE     2001
#define LISTBASE     3001
#define COMBOBASE    4001
#define RADIOBASE    5001
#define CHECKBASE    6001
#define BUTTONBASE   7001
#define TOOLSBASE    9001
#define HSCROLLBASE  10001
#define VSCROLLBASE  20001
#define GRIDBASE     21001
#define GROUPBASE    22001
#define GRAPHBASE    23001
#define SLIDERBASE   24001
#define PROGRESSBASE 25001
#define SPINBASE     26001

#endif

#define MESSAGE_DIALOG_EXTRA 10
#define FILEDIALOG_ATTRIB   (FA_RDONLY|FA_SYSTEM|FA_DIREC|FA_ARCH)
/***********************************/
#define NULL_SORT         (0x00000000L)
#define OBJECT_SORT       (0x00000001L            )
#define WINDOW_SORT       (0x00000002L|OBJECT_SORT)
#define DIALOG_SORT       (0x00000004L|WINDOW_SORT)
#define MESSAGE_SORT      (0x00000008L|DIALOG_SORT)
#define PASSWORD_SORT     (0x00000010L|DIALOG_SORT)
#define BUTTON_SORT       (0x00000020L|OBJECT_SORT)
#define MINBUTTON_SORT    (0x00000040L|BUTTON_SORT)
#define MAXBUTTON_SORT    (0x00000080L|BUTTON_SORT)
#define CLOSEBUTTON_SORT  (0x00000100L|BUTTON_SORT)
#define EDIT_SORT         (0x00000200L|OBJECT_SORT)
#define GRID_SORT         (0x00000400L|OBJECT_SORT)
#define BAR_SORT          (0x00000800L|OBJECT_SORT)
#define MENU_SORT         (0x00001000L|OBJECT_SORT)
#define RADIO_SORT        (0x00002000L|OBJECT_SORT)
#define LABEL_SORT        (0x00004000L|OBJECT_SORT)
#define LIST_SORT         (0x00008000L|OBJECT_SORT)
#define SCROLL_SORT       (0x00010000L|OBJECT_SORT)
#define HSCROLL_SORT      (0x00020000L|SCROLL_SORT)
#define VSCROLL_SORT      (0x00040000L|SCROLL_SORT)
#define COMBO_SORT        (0x00100000L|OBJECT_SORT)
#define SLIDER_SORT       (0x00200000L|OBJECT_SORT)
#define PROGRESS_SORT     (0x00400000L|OBJECT_SORT)
#define SPIN_SORT         (0x00800000L|OBJECT_SORT)

/***********************************/
#define  GRID_ATTRIB_NULL  0
#define  GRID_ATTRIB_BOX   1
/***********************************/
#define  GRID_RADIO_BOX     0
#define  GRID_RADIO_RADIO   1
/***********************************/
#define BAR_ATTRIB_NORMAL     0
#define BAR_ATTRIB_DIR        1
#define BAR_ATTRIB_SEPARATOR  2
/***********************************/

typedef struct _tagOBJECTLIST
{
	CObject   *object;
	void far  (*fc)(CObject* pCurObj);
	SORT      sort;
	DWORD     idCode;
}OBJECTLIST;
/***********************************/

class _CLASSTYPE CObject
{
public:
	RECT  m_ClientRect;
	RECT  m_ScreenRect;
protected:
	int   m_nShape;
	int   m_nForeColor;
	int   m_nBackColor;
	BOOL  m_bVisible;
	BOOL  m_bSaveScreen;
	BOOL  m_bEnable;
    BOOL  m_bTab;

	char     *m_pWindowText;
protected:
	WORD     m_wShortcutKey;
	WORD     m_wID;
	HANDLE   m_hWnd;
	SORT     m_dwSort;
	DWORD	 m_dwBlock;

	CObject  *m_pParentWnd;
	CListManager m_ListManager;
public:
	CListManager* GetListManager(){return(&m_ListManager);}
	int far  VirtualKeyboard();
	static BOOL StartControlView(struct viewporttype* pView);
	static void EndControlView(struct viewporttype* pView, BOOL bMouse);
public:
	int      GetBackColor(){return(m_nBackColor);}
	int      GetForeColor(){return(m_nForeColor);}
	int      GetShape(){return(m_nShape);}
	void     SetShape(int nShape){m_nShape=nShape;}
	void     SetCircle( int nXCircle,int nYCircle,int nRadus);
	void     SetEllipse(int nXCircle,int nYCircle,int nXRadus,int nYRadus);
	void     SetSaveScreen(BOOL bFlags){m_bSaveScreen = bFlags;}
	BOOL     GetSaveScreen(){return(m_bSaveScreen);}

	void     SetShortcutKey(WORD wKey){m_wShortcutKey=wKey;}
	WORD     GetShortcutKey(){return(m_wShortcutKey);}
	BOOL     GetVisible(){return(m_bVisible);}
	void     SetVisible(BOOL bVisible){m_bVisible=bVisible;}

	void     SetTab(BOOL bTab);//{m_bTab = bTab;}
	BOOL     GetTab(){return(m_bTab);}

	void     SetWindowText(const char far *pStr);
	char     far *GetWindowText(){return(m_pWindowText);}
protected:
	void     SetSort(SORT dwSort);//{m_dwSort=dwSort;}

	HANDLE   AddWndList(HANDLE hWnd);
	void     ClearWndList();
	HANDLE   Register();
	void     SetChildFocus(int nIndex,CObject *CObject,SORT dwSort);
	void     KillChildFocus(int nIndex,CObject *CObject,SORT dwSort);

	BOOL far  GetDisplayMemToXms(int,int,int,int);
	BOOL far  SetXmsToDisplayMem(int, int);
public:
	SORT     GetSort(){return(m_dwSort);}

	WORD     GetID(){return(m_wID);}
	void     SetID(WORD wID){m_wID=wID;}
	void     SetFc(void far (*pFc)(CObject*)=NULL);
	void     ClearObjectFromList(CObject* pOriObject);
	CObject* ObjectFromID(WORD wID);
public:
	BOOL      IsScreenRect(int nX,int nY);
	BOOL      IsClientRect(int nX,int nY);

	void     AddLeft(  int nAdd){m_ScreenRect.left  +=nAdd , m_ClientRect.left+=nAdd;}
	void     AddTop(   int nAdd){m_ScreenRect.top   +=nAdd , m_ClientRect.top+=nAdd;}
	void     AddRight (int nAdd){m_ScreenRect.right +=nAdd , m_ClientRect.right+=nAdd;}
	void     AddBottom(int nAdd){m_ScreenRect.bottom+=nAdd , m_ClientRect.bottom+=nAdd;}
public:
	HANDLE   CreateObject(int nX, int nY, int nWidth, int nHeight, const char far *pStr);
	CObject  *GetParent(){return(m_pParentWnd);}
	void     SetParent(CObject *pParentWnd){m_pParentWnd = pParentWnd;}
	HANDLE   GetSafeHwnd(){return(m_hWnd);}

    CObject*  GetSafeTopParent();
	BOOL far  SaveScreen();
	BOOL far  RestoreScreen();

	void SetEnable(BOOL bEnable);// {m_bEnable = bEnable;}
	BOOL GetEnable(){return(m_bEnable);}



    BOOL  CenterScreen();
public:
	void  GetScreenRect(RECT *pRect){*pRect = m_ScreenRect;}
	void  GetClientRect(RECT *pRect){*pRect = m_ClientRect;}

	int   GetClientWidth() {return(m_ClientRect.right  -m_ClientRect.left+1);}
	int   GetClientHeight(){return(m_ClientRect.bottom -m_ClientRect.top +1);}
	int   GetScreenWidth() {return(m_ScreenRect.right  -m_ScreenRect.left+1);}
	int   GetScreenHeight(){return(m_ScreenRect.bottom -m_ScreenRect.top +1);}
	void  SetForeColor(int nColor){m_nForeColor=nColor;}
	void  SetBackColor(int nColor){m_nBackColor=nColor;}
public:
    BOOL  IsChar(WORD wKey, BOOL bChinese);

	void  SetLocationEx(int nLeft,int nTop,int nWidth,int nHeight);
	void  SetLocation(int nLeft,int nTop,int nRight,int nBototm);

	virtual void  ModifyCoordinate();
	virtual void  AddCoordinate(int nX,int nY);
	virtual void  SetCaption(const char *);

	virtual void  KillFocus(){};
	virtual void  SetFocus(){};

	virtual void    OnDraw();
	virtual void    Paint();
	virtual BOOL    ShowFrame();

	virtual BOOL    Show();
	virtual BOOL    AntiShow();
public:
	virtual int   Swapping();
protected:
    int     DefaultSwapping();
public:
	void    ShowPlane();
	void    ShowWindowFrame();
	void    ShowDialogFrame();
	BOOL    ButtonShow();
	BOOL    SingleShow();
	BOOL    EditShow();
	BOOL    MenuShow();
	BOOL    ButtonAntiShow();
	BOOL    AllObjectShow(int nFlags);
	BOOL    DrawAnimate(CObject *pObject,SORT dwSort);
public:
    BOOL    ButtonAntiShowBoard();
    BOOL    ButtonShowBoard();
public:
        BOOL CoObject();
	CObject();
        CObject(CObject* pParent);
	virtual ~CObject();
};

class _CLASSTYPE CLabel:public CObject
{
private:
	BOOL    m_bDisplayBitmap;
	char    m_strDisplayBitmap[80];
	BOOL	m_bBackColorDisplay;
	COLOR   m_nBitmapColor;
public:
	void    SetBackColorDisplay(BOOL bFlags){m_bBackColorDisplay=bFlags;}
	int     GetBackColorDisplay(){return(m_bBackColorDisplay);}
public:
	BOOL Show();
public:
	void    SetBitmapFlags(BOOL bValue){m_bDisplayBitmap=bValue;}
	void    SetBitmapFile(char  *pStr){_fstrcpy(m_strDisplayBitmap,pStr);}
	BOOL    GetBitmapFlags(){return(m_bDisplayBitmap);}
	char*   GetBitmapFile(){return(m_strDisplayBitmap);}
	void    SetBitmapColor(int nColor){m_nBitmapColor = nColor;}
	int     GetBitmapColor(){return(m_nBitmapColor);}
public:
	void    SetFocus();
	void    KillFocus();
public:
	void CoLabel();
	CLabel();
	CLabel(CObject *pParent);
};

class CStatic:public CLabel
{
public:
	virtual BOOL Show();
public:
	CStatic(CObject* pParent);
};

class _CLASSTYPE CWindow:public CObject
{
protected:
	char    m_strCaption[80];
	char    m_strIcon[60];

	COLOR	m_nClientForeColor;
	COLOR	m_nClientBackColor;
	COLOR	m_nActivateBarForeColor;
	COLOR	m_nActivateBarBackColor;
	COLOR	m_nInactivateBarForeColor;
	COLOR	m_nInactivateBarBackColor;

	BOOL    m_bFirstShowWindow;
	DWORD   m_dwStyle;
	int     m_nFocus;
	int	m_nFont;
	BOOL	m_bActivate;
	BOOL    m_bChangeWindowOrder;
	BOOL    m_bRunNormal;
	struct  time m_Time;
protected:
	CMenu* m_pMenu;
	void  far (*m_pHelpFc)(CObject*);
	int   far (*m_pKeyboardFc)(CObject*);
	void  far (*m_pDrawFc)(CObject*);
	void  far (*m_pRightButtonDownFc)(CObject*);
	void  far (*m_pIdleFc)(CObject*);
	void  far (*m_pTimeFc)(CObject*);
public:
	void     SetCaption(const char *pStr){_fstrcpy(m_strCaption,pStr);};
	char*    GetCaption(){return(m_strCaption);}

	void     SetActivateBarBackColor(int nColor){m_nActivateBarBackColor=nColor;}
	int      GetShortcutKeyFocus(WORD wKey);

	CMenu    *GetMenu(){return(m_pMenu);}
	void     SetMenu(CMenu *pMenu){m_pMenu=pMenu;}
	void	 SetIcon(char *pStr);
	char*    GetIcon(){return(m_strIcon);};

	DWORD	 GetStyle(){return(m_dwStyle);}

	void	SetClientForeColor(int nColor){m_nClientForeColor=nColor;}
	void	SetClientBackColor(int nColor){m_nClientBackColor=nColor;}
	void	SetActivate(BOOL bFlags)      {m_bActivate       =bFlags;}
	BOOL    GetActivate(){return(m_bActivate);}

	void    SaveAndSetUserView(viewporttype *pViewPort);
	void    RestoreUserView(viewporttype    *pViewPort);

	void far (*GetHelpFc())(CObject*){return(m_pHelpFc);};
	void far (*GetIdleFc())(CObject*){return(m_pIdleFc);};
	void far (*GetTimeFc())(CObject*){return(m_pTimeFc);};
	int  far (*GetKeyboardFc())(CObject*){return(m_pKeyboardFc);};

	void    SetRightMouseFc(void far (*pFc)(CObject*)){m_pRightButtonDownFc=pFc;}
	void    SetHelpFc(void far (*pFc)(CObject*)=NULL){m_pHelpFc=pFc;}
	void    SetIdleFc(void far (*pFc)(CObject*)=NULL){m_pIdleFc=pFc;}
	void    SetTimeFc(void far (*pFc)(CObject*)=NULL){m_pTimeFc=pFc;}
	void    SetKeyboardFc(int far (*pFc)(CObject*)=NULL){m_pKeyboardFc=pFc;};
	void    SetDrawFc(void far (*pFc)(CObject*)=NULL){m_pDrawFc=pFc;};

public:
	static BOOL far ChangeWindow(HANDLE hWnd,BOOL bFlags);

	static BOOL  DisplayFrameIcon(int nLeft,int nTop,char *strIcon);

	void     SetChangeWindowOrder(BOOL bChange){m_bChangeWindowOrder = bChange;}
	BOOL	 GetChangeWindowOrder(){return(m_bChangeWindowOrder);}
	void     SetRunNormal(BOOL bNormal){m_bRunNormal = bNormal;}
	BOOL     GetRunNormal(){return(m_bRunNormal);}

	int        GetFirstFocus();
	void	   SetObjectFocus(CObject *pObject);
	CObject*   GetObjectFocus();

	int      TransrateMenu();

	int      PurseMessage()
    {

⌨️ 快捷键说明

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