📄 guiwindow.h
字号:
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 + -