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

📄 dialog.h

📁 这是早期MiniGUI DOS版本的最终版
💻 H
字号:
//
// This head file definition functions that process dialog box 
//
// Copyright (c) 1994.8 ~ 1998.4, Mr. Wei Yongming.
//
// Last modified date: 1998.04.15.

/* Type definitions */
typedef struct
{
   DWORD lStyle;
   short  lx;
   short  ty;
   short  rx;
   short  by;
   WORD  wID;
   BYTE  bClass;
   char* spItemText;
   LPSTR slpAdd;
}CTRLDATA;
typedef CTRLDATA* PCTRLDATA;
typedef CTRLDATA FAR * LPCTRLDATA;
   
typedef struct
{
   DWORD lStyle;
   short  NumOfItems;
   short  lx;
   short  ty;
   short  rx;
   short  by;
   PCTRLDATA pCtrlData;
   LPCSTR spCaption;
}DLGHEADER;
typedef DLGHEADER* PDLGHEADER;
typedef DLGHEADER FAR * LPDLGHEADER;

typedef struct
{
    char pBuff[256];
    int iEditPos;
    int iDataEnd;
    short CaretOffset;
}EDITBUFF;
typedef EDITBUFF* PEDITBUFF;
typedef EDITBUFF FAR * LPEDITBUFF;

typedef struct node
{
    LPSTR pStr;
    struct node FAR* pNext;
}NODE;
typedef NODE* PNODE;
typedef NODE FAR* LPNODE;

typedef struct 
{
    int iWndOffset;
    int iCurSel;
    int iCount;
    LPNODE pHead;
}LISTBOXBUFF;
typedef LISTBOXBUFF* PLISTBOXBUFF;
typedef LISTBOXBUFF FAR* LPLISTBOXBUFF;

typedef struct
{
    DWORD           lStyle;
    short           lx, ty, rx, by;
    short           xfirst;
    int             NumOfCtrl;
    PCTRLDATA       pCtrlData;
    LPCSTR           lpMsg;
    LPCSTR           lpCaption;
}MSGBOXDATA;
typedef MSGBOXDATA* PMSGBOXDATA;
typedef MSGBOXDATA FAR * LPMSGBOXDATA;

typedef struct
{
    BOOL fOpen;
    int iInitDrive;
    LPCSTR lpInitDir;
    LPSTR lpFileName;
    LPCSTR lpExt;
}OPENFILEBOX;
typedef OPENFILEBOX* POPENFILEBOX;
typedef OPENFILEBOX FAR * LPOPENFILEBOX;

// the identifiers of System Dialogs
#define IDD_SYSABOUTDLG         1
#define IDD_OPENFILEDLG         2
#define IDD_SIMPLEOPENFILEDLG   3

// the identifiers that used by System About Box
#define IDC_ICON                        500
#define IDC_MEMORY                      501
#define IDC_MATH                        502
#define IDC_DISK                        503
#define IDC_FARMEMORY                   504

// the identifiers that used by Open File Box
#define IDC_FILENAME                    504
#define IDC_DIRECTORY                   505
#define IDC_FILE                        506
#define IDC_DIR                         507

// definition of FIELD EDIT key and mouse message
#define LB_NULL           30
#define LB_BEEP           32
#define LB_ASCII          33
#define LB_DOWN           34
#define LB_UP             35
#define LB_FRONT          36
#define LB_END            37
#define LB_PAGEDOWN       38
#define LB_PAGEUP         39

// definition of FIELD EDIT key and mouse message
#define ED_NULL           30
#define ED_ABORT          31
#define ED_BEEP           32
#define ED_ASCII          33
#define ED_LEFT           34
#define ED_RIGHT          35
#define ED_FRONT          36
#define ED_END            37
#define ED_DELETE         38
#define ED_BACKSPACE      39
#define ED_INSTOGGLE      40
#define ED_TRANSMIT       41
#define ED_DELALL         42
                          
// definition of BOX key and mouse message
#define INVALID           50
#define NEXTTAB           51
#define LASTTAB           52
#define ABORT             53
#define RETRY             54
#define IGNORE            55
#define CANCEL            56
#define OK                57
#define YES               58
#define NO                59
#define CHECK             70
#define BEEP              71
#define NEXTGROUP         72
#define LASTGROUP         73
#define MOUSEFOCUS        75
#define MOUSECHECK        76
    
// definition of box message
#define NONE              100
#define INITDIALOG        101
#define DRAWCTRL          102
#define DRAWTEXT          103
#define COMMAND           104
#define SETFOCUS          105
#define FOCUSCOMMAND      106
#define INITIALIZED       110

// definition of dialog procedure's return 
#define OWNER             1
#define DEFAULT           2
#define CLOSE             3
#define NOCLOSE           4

/* Function declaration */
#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus */
// Common functions
void GUIAPI DrawCtrl( BYTE bClass, DWORD lSytle, short buttonx, short buttony, short buttonw, short buttonh );
void GUIAPI DrawCtrlClientArea(PCTRLDATA pCtrlData);
void GUIAPI SetFocus(PCTRLDATA pCtrlData);
void GUIAPI TranslateBoxMsg( BOOL fDlg, PDLGHEADER pDlgHeader, PMSG pMsg );
void GUIAPI TranslateEditMsg(PDLGHEADER pDlgHeader, PMSG pMsg );
void GUIAPI TranslateListBoxMsg(PDLGHEADER pDlgHeader, PMSG pMsg );

// about dialog
PDLGHEADER GUIAPI GetSysDlgHeader(int iID);
int FAR SysAboutBoxProc( PDLGHEADER pDlgHeader, UINT uAction, WORD wID, LONG lParam );
int FAR OpenBoxProc( PDLGHEADER pDlgHeader, UINT uAction, WORD wID, LONG lParam );
int FAR SimpleOpenBoxProc( PDLGHEADER pDlgHeader, UINT uAction, WORD wID, LONG lParam );
BOOL GUIAPI DialogBoxParam( PGUIINFO pGUIInfo, PDLGHEADER pDlgHeader, int (FAR *DlgProc)(PDLGHEADER, UINT, WORD, LONG), LPSTR lpStr );
PCTRLDATA GUIAPI GetControlData( PDLGHEADER pDlgHeader, WORD wID );
void GUIAPI GetControlRect( PDLGHEADER pDlgHeader, WORD wID, LPRECT lpRect);
void GUIAPI GrayDlgItem( PDLGHEADER pDlgHeader, WORD wID );
void GUIAPI UngrayDlgItem( PDLGHEADER pDlgHeader, WORD wID );
void GUIAPI ShowDlgItem( PDLGHEADER pDlgHeader, WORD wID );
void GUIAPI HideDlgItem( PDLGHEADER pDlgHeader, WORD wID );

void GUIAPI DrawTextInStaticItem( PDLGHEADER pDlgHeader, WORD wID, LPCSTR lpStr );

// about Message Box
int GUIAPI MessageBox( PGUIINFO pGUIInfo, LPCSTR lpszText, LPCSTR lpszCaption, DWORD lStyle);
int GUIAPI SysMessageBox( PGUIINFO pGUIInfo, LPCSTR lpszText, LPCSTR lpszCaption, DWORD lStyle);
static BOOL CreateMsgBox( PMSGBOXDATA pMsgBoxData );
LPSTR GUIAPI LoadMsgIcon( DWORD lStyle );

// about button
BOOL GUIAPI GetCheck( PDLGHEADER pDlgHeader, WORD wID );
void GUIAPI SetCheck( PDLGHEADER pDlgHeader, WORD wID, BOOL bCheck );

// about Field Edit Box
void GUIAPI ProcEdit(  PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData, PMSG pMsg );
void GUIAPI OutFieldEditText( PCTRLDATA pCtrlData, BOOL fEdit );
void GUIAPI SetEditBoxText(  PDLGHEADER pDlgHeader, WORD wID, LPCSTR lpStr );
void GUIAPI GetEditBoxText(  PDLGHEADER pDlgHeader, WORD wID, LPSTR lpStr, int iLength );

// about linked list
LPNODE GUIAPI CreateNewList(LPSTR lpStr);
BOOL GUIAPI AddNode(LPNODE pHead, LPSTR lpStr);
void GUIAPI DeleteList(LPNODE pHead);
LPNODE GUIAPI GetTrail(LPNODE pHead);
LPNODE GUIAPI DeleteNode(LPNODE pHead, int iIndex);
LPCSTR GUIAPI GetNodeValue(LPNODE pHead, int iIndex);
int GUIAPI GetListLength(LPNODE pHead);

// about ListBox
void GUIAPI ProcListBox(  PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData, PMSG pMsg );
BOOL GUIAPI AddListBoxItem( PDLGHEADER pDlgHeader, WORD wID, LPSTR lpStr );
void GUIAPI DeleteListBoxItem( PDLGHEADER pDlgHeader, WORD wID, int iIndex );
int GUIAPI GetSelectedItem( PDLGHEADER pDlgHeader, WORD wID );
void GUIAPI GetListBoxItem( PDLGHEADER pDlgHeader, WORD wID, LPSTR lpStr, int iIndex );
int GUIAPI GetListItemNum(  PDLGHEADER pDlgHeader, WORD wID );
void GUIAPI ReleaseListBoxBuff( PCTRLDATA pCtrlData );
void GUIAPI FillListBox( PCTRLDATA pCtrlData );

#ifdef __cplusplus
}
#endif  /* __cplusplus */

⌨️ 快捷键说明

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