📄 wndstruc.h
字号:
/*******************************************************************************
This header contains various CW window structure definitions, and for
the early versions of CW, the macros for accessing all the varius extra
words of information that existed beyond the basic WND structure.
Created: 3-January-1991 MWP
6-Feb-91 MWP : Moved function prototypes for Get/SetWindowWord to uwindows.h
11-Feb-91 MWP : Added wDropState to DROP_WND struc.
14-Feb-91 MWP : Added definition for dialog file processing windows.
15-Feb-91 MWP : Added pwndAccel variable to static window structure. This
allows us to maintain an accelerator for static text, and
not have the control that is to get the focus be defined
exactly after the static control within dialogs.
BRILLIANT!
5-Mar-91 MWP : Re-sync the EDIT and PEDIT struc definitions. They were not
totally aligned, causing code in sedit to overwrite the end
of a pwnd allocation.
7-Mar-91 MWP : Create a DESKTOP window struc.
11-Mar-91 MWP : Added wFrameHeight to Frame window def.
1-Apr-91 MWP : Added hidHelp parameter to dialog window struc.
3-Jun-91 MWP : Fixed incorrect casting of drop down window macros.
******************************************************************************/
/***BEGIN_PUBLIC***/
// Control Procedure
typedef WORD (FARPUBLIC *PWFN_CTL)(WORD, char *, WORD, WORD, WORD, WORD);
// BLADE enhanced version.
#ifdef BLADE
#ifdef BROADSWORD
#ifdef FULL_EDIT
#ifdef BASED
typedef struct _winwnded _based(pWndSeg) WND_WINEDIT;
#else
typedef struct _winwnded WND_WINEDIT;
#endif
typedef WND_WINEDIT *PWND_WINEDIT;
typedef struct _winwnded
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes; // 31 bytes
#endif
PED ped;
};
#define GetEditPed(pwnd) (((PWND_WINEDIT)pwnd)->ped)
#define SetEditPed(pwnd, ped) ( ((PWND_WINEDIT)pwnd)->ped = ped)
#endif
#endif
#ifdef BASED
typedef struct _wndmle _based(pWndSeg) WND_MLE;
#else
typedef struct _wndmle WND_MLE;
#endif
typedef WND_MLE *PWND_MLE;
typedef struct _wndmle
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes;
#endif
WORD padding;
WORD pEF_Structure;
};
#ifdef BASED
typedef struct _wnddesktop _based(pWndSeg) WND_DESKTOP;
#else
typedef struct _wnddesktop WND_DESKTOP;
#endif
typedef WND_DESKTOP *PWND_DESKTOP;
typedef struct _wnddesktop
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes; // 31 bytes
#endif
BYTE bFill;
WORD isaDesktop;
};
#ifdef BASED
typedef struct _wndgeneric _based(pWndSeg) WND_GEN;
#else
typedef struct _wndgeneric WND_GEN;
#endif
typedef WND_GEN *PWND_GEN;
typedef struct _wndgeneric
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes; // 31 bytes
#endif
WORD aclDialog;
char *szDialog;
WORD cchDialog; // 6 bytes
};
#ifdef BASED
typedef struct _wndgenpic _based(pWndSeg) WND_GENPIC;
#else
typedef struct _wndgeneric WND_GENPIC;
#endif
typedef WND_GENPIC *PWND_GENPIC;
typedef struct _wndgenpic
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes; // 31 bytes
#endif
WORD aclDialog;
char *szDialog;
WORD cchDialog; // 6 bytes
PWFN_CTL pfnGenProc;
WORD wParam; // 6 bytes
};
// General window stuff
// #define PwfnCtlGeneral(pwnd) (*((PWFN_CTL *) &pwnd->rgwExtra[cwExtraMin]))
#define PwfnCtlGeneral(pwnd) ((PWND_GENPIC)pwnd)->pfnGenProc
#define WParamGeneral(pwnd) ((PWND_GENPIC)pwnd)->wParam
#define SetAccelerator(pwnd, Position, szText) \
((PWND_GEN)(pwnd))->aclDialog = (((BYTE)((Position) - 1)) << 8) + \
*((unsigned char *)(szText) + ((Position) - 1))
#ifdef BASED
typedef struct _wndgroup _based(pWndSeg) WND_GROUP;
#else
typedef struct _wndgroup WND_GROUP;
#endif
typedef WND_GROUP *PWND_GROUP;
typedef struct _wndgroup
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes;
#endif
WORD aclDialog;
char *szDialog;
PWND pwndAccel;
};
#ifdef BASED
typedef struct _wndstatic _based(pWndSeg) WND_STATIC;
#else
typedef struct _wndstatic WND_STATIC;
#endif
typedef WND_STATIC *PWND_STATIC;
typedef struct _wndstatic
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes; // 31 bytes
#endif
WORD aclDialog;
char *szDialog;
PWND pwndAccel;
};
#ifdef BASED
typedef struct _dlgwnd _based(pWndSeg) WND_DLG;
#else
typedef struct _dlgwnd WND_DLG;
#endif
typedef WND_DLG *PWND_DLG;
typedef struct _dlgwnd
{
WORD id;
BITS style:14;
BITS fCursorOn:1;
BITS fEnabled:1;
WORD wExtStyle;
ARC arcWindow;
ARC arcClipping;
#ifdef BROADSWORD
ARC rrcInvalid;
BYTE hbrDraw; // Color for drawing.
BYTE hbrBackGround; // Color for background.
#else
RRC rrcInvalid;
#endif
PLFN_WNDPROC pfnWndProc;
PWND pwndParent;
PWND pwndSibling;
PWND pwndChild;
#ifdef BROADSWORD
WORD pcls;
#endif
BYTE axCursor;
BYTE ayCursor;
#ifndef BROADSWORD
BYTE wndBytes; // 31 bytes
#endif
WORD aclDialog;
char *szDialog;
WORD wParamEnd;
VOID *pmbsDialog;
PLFN pfnUserProc; // 12 bytes
WORD hidHelp;
};
// so that rspAppIdle can determine where the current msg box dialog is
extern PWND_DLG pwndDlg; // Again, app should never use
typedef struct _drop DROP;
typedef DROP *PDROP;
typedef struct _Drop {
WORD Dummy;
WORD wDropFlags;
PWND pwndDropListBox;
PWND pwndDropButton;
PWND pwndDropEdit;
PLFN_WNDPROC pfnDropListBoxProc;
PLFN_WNDPROC pfnDropEditProc;
};
#ifdef BASED
typedef struct _wnddrop _based(pWndSeg) WND_DROP;
#else
typedef struct _wnddrop WND_DROP;
#endif
typedef WND_DROP *PWND_DROP;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -