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

📄 guiwindow.h

📁 The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F
💻 H
📖 第 1 页 / 共 3 页
字号:
    T_GUI_HWND hWnd;
    T_GUI_KeyMsgHook hook;
}T_GUI_KeyHook;

typedef struct T_GUI_MouseHook
{
    T_GUI_HWND hWnd;
    T_GUI_MouseMsgHook hook;
} T_GUI_MouseHook;

T_GUI_HHOOK fnGUI_RegisterKeyMsgHook (T_GUI_HWND hWnd, T_GUI_KeyMsgHook hook);
T_GUI_HHOOK fnGUI_RegisterMouseMsgHook (T_GUI_HWND hWnd, T_GUI_MouseMsgHook hook);
T_WORD fnGUI_UnregisterHook (T_GUI_HHOOK hHook);

/*********the following added by ChenHong 2003.1.10***************************/
T_GUI_WndProc fnGUI_SetDskProcHook(T_GUI_WndProc userDskProcHook);
/**************the above added 2003.1.10**************************************/

#ifdef GUI_CURSORSUPPORT

T_WORD fnGUI_GetCursorX();//added by qq for cursor 2002.8.20
T_WORD fnGUI_GetCursorY();
T_WORD fnGUI_SetCursorStep(T_WORD step);
T_VOID fnGUI_DrawCursor(T_WORD x,T_WORD y);

#endif	/* cursor support */



/******************************* Style definitions ***************************/
/* Class styles */
#define CS_VREDRAW          0x0001
#define CS_HREDRAW          0x0002

#define CS_OWNDC            0x0020
#define CS_CLASSDC          0x0040
#define CS_PARENTDC         0x0080

#define CS_SAVEBITS         0x0800

#define CS_DBLCLKS          0x0008

#define CS_BYTEALIGNCLIENT  0x1000
#define CS_BYTEALIGNWINDOW  0x2000

#define CS_NOCLOSE          0x0200

#define CS_KEYCVTWINDOW     0x0004
#define CS_NOKEYCVT         0x0100

#define CS_GLOBALCLASS      0x4000

/* Window Styles */
/* Basic window types */
#define WS_OVERLAPPED       0x00000000L
#define WS_POPUP            0x80000000L
#define WS_CHILD            0x40000000L

/* Generic window states */
#define WS_VISIBLE          0x08000000L
#define WS_DISABLED         0x04000000L

/* Main window states */
#define WS_MINIMIZE         0x02000000L
#define WS_MAXIMIZE         0x01000000L

/* Main window styles */
#define WS_CAPTION          0x20000000L
#define WS_SYSMENU          0x10000000L
#define WS_DLGFRAME         0x00800000L
#define WS_BORDER           0x00400000L
#define WS_THICKFRAME       0x00200000L
#define WS_THINFRAME        0x00100000L
#define WS_VSCROLL          0x00080000L
#define WS_HSCROLL          0x00040000L
#define WS_MINIMIZEBOX      0x00020000L
#define WS_MAXIMIZEBOX      0x00010000L

/* Control window styles */
#define WS_GROUP            0x00020000L
#define WS_TABSTOP          0x00010000L

/* Common Window Styles */
#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED  | \
                             WS_CAPTION     | \
                             WS_SYSMENU     | \
                             WS_THICKFRAME  | \
                             WS_MINIMIZEBOX | \
                             WS_MAXIMIZEBOX )

#define WS_POPUPWINDOW      (WS_POPUP       | \
                             WS_BORDER      | \
                             WS_SYSMENU)

#define WS_CHILDWINDOW      (WS_CHILD)


/* Extended Window Styles */
#define WS_EX_NONE              0x00000000L
#define WS_EX_DLGMODALFRAME     0x00000001L
#define WS_EX_USEPRIVATECDC     0x00000002L
#define WS_EX_NOPARENTNOTIFY    0x00000004L
#define WS_EX_TOPMOST           0x00000008L
#define WS_EX_ACCEPTFILES       0x00000010L
#define WS_EX_TRANSPARENT       0x00000020L
#define WS_EX_MDICHILD          0x00000040L
#define WS_EX_TOOLWINDOW        0x00000080L
#define WS_EX_WINDOWEDGE        0x00000100L
#define WS_EX_CLIENTEDGE        0x00000200L
#define WS_EX_CONTEXTHELP       0x00000400L
#define WS_EX_USEPARENTCURSOR   0x00000800L

#define WS_EX_RIGHT             0x00001000L
#define WS_EX_LEFT              0x00000000L
#define WS_EX_RTLREADING        0x00002000L
#define WS_EX_LTRREADING        0x00000000L
#define WS_EX_LEFTSCROLLBAR     0x00004000L
#define WS_EX_RIGHTSCROLLBAR    0x00000000L

#define WS_EX_CONTROLPARENT     0x00010000L
#define WS_EX_STATICEDGE        0x00020000L
#define WS_EX_APPWINDOW         0x00040000L

#define WS_EX_IMECOMPOSE        0x10000000L
#define WS_EX_NOCLOSEBOX        0x20000000L
#define WS_EX_CTRLASMAINWIN     0x40000000L

#define WS_EX_OVERLAPPEDWINDOW  (WS_EX_WINDOWEDGE | \
                                 WS_EX_CLIENTEDGE)

#define WS_EX_PALETTEWINDOW     (WS_EX_WINDOWEDGE | \
                                 WS_EX_TOOLWINDOW | \
                                 WS_EX_TOPMOST)

/*for driver interface*/
T_WORD fnGUI_GetLCDProperty(T_WORD which);
T_VOID fnGUI_MemToScreen(T_WORD x1,T_WORD y1,T_WORD x2,T_WORD y2);
T_VOID fnGUI_SetInstantPaint(T_BOOL bPaint);
T_BOOL	fnGUI_CheckInstantPaint();


/******************************** Main window support ************************/
#define HWND_DESKTOP        0
#define HWND_INVALID        0xFFFFFFFF

typedef struct T_GUI_MainWinCreate
{
    T_UWORD dwStyle;
    T_UWORD dwExStyle;

    T_CONST T_BYTE* spCaption;
    T_GUI_HMENU hMenu;
    T_GUI_HICON hIcon;

    T_GUI_HWND  hHosting;  /* the hosting main window.*/

    T_WORD (*MainWindowProc)(T_GUI_HWND, T_WORD, T_GUI_WPARAM, T_GUI_LPARAM); /* message procedure */

    T_WORD lx, ty;
    T_WORD rx, by; /* window size */

    T_WORD iBkColor; /* background color */

    T_UWORD dwAddData;
}T_GUI_MainWinCreate;
typedef T_GUI_MainWinCreate* T_GUI_pMainWinCreate;

T_BOOL fnGUI_ExcludeWindowStyle (T_GUI_HWND hWnd, T_UWORD dwStyle);
T_BOOL fnGUI_IncludeWindowStyle (T_GUI_HWND hWnd, T_UWORD dwStyle);

T_GUI_HWND fnGUI_CreateMainWindow (T_GUI_pMainWinCreate pCreateStruct);
T_BOOL fnGUI_DestroyMainWindow (T_GUI_HWND hWnd);
T_WORD fnGUI_DefaultMainWinProc (T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);
T_WORD fnGUI_DefaultControlProc (T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam);


#define SW_HIDE              0x0000
#define SW_SHOW              0x0010
#define SW_SHOWNORMAL        0x0100

T_VOID fnGUI_UpdateWindow (T_GUI_HWND hWnd, T_BOOL bErase);
T_BOOL fnGUI_ShowWindow (T_GUI_HWND hWnd, T_WORD iCmdShow);

T_BOOL fnGUI_EnableWindow (T_GUI_HWND hWnd, T_WORD fEnable);
T_BOOL fnGUI_IsWindowEnabled (T_GUI_HWND hWnd);

T_BOOL fnGUI_GetClientRect(T_GUI_HWND hWnd, T_GUI_pRect prc);

T_WORD fnGUI_GetWindowBkColor (T_GUI_HWND hWnd);
T_WORD fnGUI_SetWindowBkColor (T_GUI_HWND hWnd, T_WORD new_bkcolor);
T_UWORD fnGUI_GetWindowStyle (T_GUI_HWND hWnd);
T_UWORD fnGUI_GetWindowExStyle (T_GUI_HWND hWnd);
T_UWORD fnGUI_GetWindowAdditionalData (T_GUI_HWND hWnd);
T_UWORD fnGUI_SetWindowAdditionalData (T_GUI_HWND hWnd, T_UWORD newData);
T_UWORD fnGUI_GetWindowAdditionalData2 (T_GUI_HWND hWnd);
T_UWORD fnGUI_SetWindowAdditionalData2 (T_GUI_HWND hWnd, T_UWORD newData);
T_UWORD fnGUI_GetWindowClassAdditionalData (T_GUI_HWND hWnd);
T_UWORD fnGUI_SetWindowClassAdditionalData (T_GUI_HWND hWnd, T_UWORD newData);
T_CONST T_BYTE* fnGUI_GetWindowCaption (T_GUI_HWND hWnd);
T_BOOL fnGUI_SetWindowCaption (T_GUI_HWND hWnd, T_CONST T_BYTE* spCaption);
T_GUI_WndProc fnGUI_GetWindowCallbackProc (T_GUI_HWND hWnd);
T_GUI_WndProc fnGUI_SetWindowCallbackProc (T_GUI_HWND hWnd, T_GUI_WndProc newProc);

T_BOOL fnGUI_InvalidateRect(T_GUI_HWND hWnd, T_CONST T_GUI_Rect* prc, T_BOOL bEraseBkgnd);
T_GUI_HDC fnGUI_BeginPaint(T_GUI_HWND hWnd);
T_VOID fnGUI_EndPaint(T_GUI_HWND hWnd, T_GUI_HDC hdc);

T_WORD fnGUI_ClientWidthToWindowWidth (T_UWORD dwStyle, T_WORD cw);
T_WORD fnGUI_ClientHeightToWindowHeight (T_UWORD dwStyle, T_WORD ch, T_BOOL hasMenu);

T_VOID  fnGUI_ClientToScreen(T_GUI_HWND hWnd, T_WORD* x, T_WORD* y);
T_VOID fnGUI_ScreenToClient(T_GUI_HWND hWnd, T_WORD* x, T_WORD* y);

T_VOID fnGUI_WindowToScreen(T_GUI_HWND hWnd, T_WORD* x, T_WORD* y);
T_VOID fnGUI_ScreenToWindow(T_GUI_HWND hWnd, T_WORD* x, T_WORD* y);

T_BOOL fnGUI_IsMainWindow (T_GUI_HWND hWnd);
T_BOOL fnGUI_IsControl (T_GUI_HWND hWnd);
T_BOOL fnGUI_IsWindow (T_GUI_HWND hWnd);
T_GUI_HWND fnGUI_GetParent (T_GUI_HWND hWnd);
T_BOOL fnGUI_IsWindowVisible (T_GUI_HWND hWnd);
T_BOOL fnGUI_GetWindowRect (T_GUI_HWND hWnd, T_GUI_pRect prc);

T_GUI_HWND fnGUI_GetHosting (T_GUI_HWND hWnd);
T_GUI_HWND fnGUI_GetFirstHosted (T_GUI_HWND hWnd);
T_GUI_HWND fnGUI_GetNextHosted (T_GUI_HWND hHosting, T_GUI_HWND hHosted);

T_WORD fnGUI_GetWindowTextLength (T_GUI_HWND hWnd);
T_WORD fnGUI_GetWindowText (T_GUI_HWND hWnd, T_BYTE* spString, T_WORD nMaxLen);
T_BOOL fnGUI_SetWindowText (T_GUI_HWND hWnd, T_CONST T_BYTE* spString);

T_GUI_HWND fnGUI_SetFocus(T_GUI_HWND hWnd);

T_GUI_HWND fnGUI_GetFocus(T_VOID);
T_GUI_HWND fnGUI_GetFocusChild (T_GUI_HWND hMainWnd);

T_GUI_HWND fnGUI_SetActiveWindow(T_GUI_HWND hMainWnd);
T_GUI_HWND fnGUI_GetActiveWindow(T_VOID);
T_GUI_HWND fnGUI_SetCapture(T_GUI_HWND hMainWnd);
T_GUI_HWND fnGUI_GetCapture(T_VOID);
T_VOID fnGUI_ReleaseCapture(T_VOID);

#define fnGUI_GetForegroundWindow fnGUI_GetActiveWindow
#define fnGUI_SetForegroundWindow fnGUI_SetActiveWindow

T_BOOL fnGUI_MoveWindow (T_GUI_HWND hWnd, T_WORD x, T_WORD y, T_WORD w, T_WORD h, T_BOOL fPaint);

T_VOID fnGUI_ScrollWindow (T_GUI_HWND hWnd, T_WORD iOffx, T_WORD iOffy);

#define SB_HORZ     1
#define SB_VERT     2

T_BOOL fnGUI_EnableScrollBar (T_GUI_HWND hWnd, T_WORD iSBar, T_BOOL bEnable);
T_BOOL fnGUI_GetScrollPos (T_GUI_HWND hWnd, T_WORD iSBar, T_WORD* pPos);
T_BOOL fnGUI_GetScrollRange (T_GUI_HWND hWnd, T_WORD iSBar, T_WORD* pMinPos, T_WORD* pMaxPos);
T_BOOL fnGUI_SetScrollPos (T_GUI_HWND hWnd, T_WORD iSBar, T_WORD iNewPos);
T_BOOL fnGUI_SetScrollRange (T_GUI_HWND hWnd, T_WORD iSBar, T_WORD iMinPos, T_WORD iMaxPos);
T_BOOL fnGUI_ShowScrollBar (T_GUI_HWND hWnd, T_WORD iSBar, T_BOOL bShow);

#define SIF_RANGE           0x0001
#define SIF_PAGE            0x0002
#define SIF_POS             0x0004
#define SIF_DISABLENOSCROLL 0x0008
#define SIF_TRACKPOS        0x0010
#define SIF_ALL             (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)

typedef struct T_GUI_ScrollInfo
{
    T_GUI_UINT    fMask;
    T_WORD     nMin;
    T_WORD     nMax;
    T_GUI_UINT    nPage;
    T_WORD     nPos;
}T_GUI_ScrollInfo, *T_GUI_lpScrollInfo;
typedef T_GUI_ScrollInfo T_CONST *T_GUI_lpcScrollInfo;/*const scroll info*/

T_BOOL fnGUI_SetScrollInfo(T_GUI_HWND, T_WORD, T_GUI_lpcScrollInfo, T_BOOL);
T_BOOL fnGUI_GetScrollInfo(T_GUI_HWND, T_WORD, T_GUI_lpScrollInfo);


T_VOID fnGUI_MainWindowCleanup(T_GUI_HWND hMainWnd);


#define MWM_MINWIDTH            0
#define MWM_MINHEIGHT           1
#define MWM_BORDER              2
#define MWM_THICKFRAME          3
#define MWM_THINFRAME           4
#define MWM_CAPTIONY            5
#define MWM_ICONX               6
#define MWM_ICONY               7
#define MWM_MENUBARY            8
#define MWM_MENUBAROFFX         9
#define MWM_MENUBAROFFY         10
#define MWM_MENUITEMY           11
#define MWM_INTERMENUITEMX      12
#define MWM_INTERMENUITEMY      13
#define MWM_MENUITEMOFFX        14
#define MWM_MENUTOPMARGIN       15
#define MWM_MENUBOTTOMMARGIN    16
#define MWM_MENULEFTMARGIN      17
#define MWM_MENURIGHTMARGIN     18
#define MWM_MENUITEMMINX        19
#define MWM_MENUSEPARATORY      20
#define MWM_MENUSEPARATORX      21
#define MWM_SB_HEIGHT           22
#define MWM_SB_WIDTH            23
#define MWM_SB_INTERX           24
#define MWM_CXVSCROLL           25
#define MWM_CYVSCROLL           26
#define MWM_CXHSCROLL           27
#define MWM_CYHSCROLL           28
#define MWM_MINBARLEN           29
#define MWM_DEFBARLEN           30

#define MWM_ITEM_NUMBER         31

T_WORD fnGUI_GetMainWinMetrics(T_WORD iItem);

#define BKC_CAPTION_NORMAL          0
#define FGC_CAPTION_NORMAL          1
#define BKC_CAPTION_ACTIVED         2
#define FGC_CAPTION_ACTIVED         3
#define BKC_CAPTION_DISABLED        4
#define FGC_CAPTION_DISABLED        5
#define WEC_FRAME_NORMAL            6
#define WEC_FRAME_ACTIVED           7
#define WEC_FRAME_DISABLED          8

#define BKC_MENUBAR_NORMAL          9   /*  PIXEL_lightgray */
#define FGC_MENUBAR_NORMAL          10  /*  PIXEL_black */
#define BKC_MENUBAR_HILITE          11  /*  PIXEL_darkblue */
#define FGC_MENUBAR_HILITE          12  /*  PIXEL_lightwhite */
#define FGC_MENUBAR_DISABLED        13  /*  PIXEL_darkgray */

#define BKC_MENUITEM_NORMAL         14  /*  PIXEL_lightgray */
#define FGC_MENUITEM_NORMAL         15  /*  PIXEL_black */
#define BKC_MENUITEM_HILITE         16  /*  PIXEL_darkblue */
#define FGC_MENUITEM_HILITE         17  /*  PIXEL_lightwhite */
#define FGC_MENUITEM_DISABLED       18  /*  PIXEL_darkgray */
#define BKC_PPPMENUTITLE            19  /*  PIXEL_lightgray */
#define FGC_PPPMENUTITLE            20  /*  PIXEL_blue */

#define WEC_3DFRAME_LEFT_OUTER      21
#define WEC_3DFRAME_LEFT_INNER      22
#define WEC_3DFRAME_TOP_OUTER       23
#define WEC_3DFRAME_TOP_INNER       24
#define WEC_3DFRAME_RIGHT_OUTER     25
#define WEC_3DFRAME_RIGHT_INNER     26
#define WEC_3DFRAME_BOTTOM_OUTER    27
#define WEC_3DFRAME_BOTTOM_INNER    28

#define WEC_3DFRAME_LEFT            29
#define WEC_3DFRAME_TOP             30
#define WEC_3DFRAME_RIGHT           31
#define WEC_3DFRAME_BOTTOM          32

#define BKC_CONTROL_DEF             33
#define FGC_CONTROL_DEF             34
#define WEC_FLAT_BORDER             35

#define WEC_ITEM_NUMBER             36

/*********the following added by ChenHong 2003.2.25 ************************/
T_BOOL fnGUI_SetWindowElementRGBColors(T_WORD iItem, T_WORD r,T_WORD g,T_WORD b);
T_BOOL fnGUI_SetWindowElementPixelColors(T_WORD iItem, T_GUI_PIXEL c);
/**********the above added by ChenHong 2003.2.25****************************/

T_GUI_PIXEL fnGUI_GetWindowElementColor(T_WORD iItem);

#define SYSBMP_MINIMIZE         0
#define SYSBMP_MAXIMIZE         1
#define SYSBMP_RESTORE          2
#define SYSBMP_CLOSE            3
#define SYSBMP_ARROWUP          4
#define SYSBMP_ARROWUPD         5
#define SYSBMP_ARROWDOWN        6
#define SYSBMP_ARROWDOWND       7
#define SYSBMP_ARROWLEFT        8
#define SYSBMP_ARROWLEFTD       9
#define SYSBMP_ARROWRIGHT       10
#define SYSBMP_ARROWRIGHTD      11
#define SYSBMP_SUBMENU1         12
#define SYSBMP_SUBMENU2         13
#define SYSBMP_SUBMENU3         14
#define SYSBMP_SUBMENU4         15
#define SYSBMP_CHECK1           16
#define SYSBMP_CHECK2           17
#define SYSBMP_CHECK3           18
#define SYSBMP_CHECK4           19
#define SYSBMP_RADIO1           20
#define SYSBMP_RADIO2           21
#define SYSBMP_RADIO3           22
#define SYSBMP_RADIO4           23
#define SYSBMP_BUTTON           24
#define SYSBMP_CHECKMARK        25
#define SYSBMP_SPINBOX          26
#define SYSBMP_DOWNARROW        27
#define SYSBMP_UPDOWNARROW      28

#define SYSBMP_ITEM_NUMBER      30

T_GUI_pBitmap fnGUI_GetSystemBitmap (T_WORD id);

#define IDI_APPLICATION         0
#define IDI_HAND                1
#define IDI_STOP                IDI_HAND
#define IDI_QUESTION            2
#define IDI_EXCLAMATION         3
#define IDI_ASTERISK            4
#define IDI_INFORMATION         IDI_ASTERISK
#define SYSICO_ITEM_NUMBER      7

/*T_GUI_HICON fnGUI_GetLargeSystemIcon (T_WORD id);*/
T_GUI_HICON fnGUI_GetSmallSystemIcon (T_WORD id);
#define fnGUI_GetLargeSystemIcon(id) fnGUI_GetSmallSystemIcon(id)


⌨️ 快捷键说明

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