同步操作将从 Gitee 极速下载/MiniGUI 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/////////////////////////////////////////////////////////////////////////////////// IMPORTANT NOTICE//// The following open source license statement does not apply to any// entity in the Exception List published by FMSoft.//// For more information, please visit://// https://www.fmsoft.cn/exception-list/////////////////////////////////////////////////////////////////////////////////** This file is part of MiniGUI, a mature cross-platform windowing* and Graphics User Interface (GUI) support system for embedded systems* and smart IoT devices.** Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd.* Copyright (C) 1998~2002, WEI Yongming** This program is free software: you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation, either version 3 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program. If not, see <http://www.gnu.org/licenses/>.** Or,** As this program is a library, any link to this program must follow* GNU General Public License version 3 (GPLv3). If you cannot accept* GPLv3, you need to be licensed from FMSoft.** If you have got a commercial license of this program, please use it* under the terms and conditions of the commercial license.** For more information about the commercial license, please refer to* <http://www.minigui.com/en/about/licensing-policy/>.*//*** ctrlclass.h: the head file of Control Class module.**** Create date: 1999年5月21日*/#ifndef GUI_CTRLCLASS_H#define GUI_CTRLCLASS_H#define MAXLEN_CLASSNAME 31typedef struct _CTRLCLASSINFO{char name[MAXLEN_CLASSNAME + 1];// class name/** common properties of this class*/DWORD dwStyle; // Default control styles.DWORD dwExStyle; // Default control extended styles.HCURSOR hCursor; // control cursorgal_pixel iFgColor; // control foreground color.gal_pixel iBkColor; // control background color.LRESULT (*ControlProc)(HWND, UINT, WPARAM, LPARAM);// control procedure.DWORD dwAddData; // the additional data.int nUseCount; // use count.struct _CTRLCLASSINFO* next;// next class info}CTRLCLASSINFO;typedef CTRLCLASSINFO* PCTRLCLASSINFO;typedef struct tagCONTROL{/** These fields are similiar with MAINWIN struct.*/int left, top; // the position of control in main window'sint right, bottom; // client area.int cl, ct; // the positio of control client in main window'sint cr, cb; // client area.DWORD dwStyle; // the styles of child window.DWORD dwExStyle; // the extended styles of child window.gal_pixel iFgColor; // control foreground color.gal_pixel iBkColor; // control background color.HMENU hMenu; // handle of menu.HACCEL hAccel; // handle of accelerator table.HCURSOR hCursor; // handle of cursor.HICON hIcon; // handle of icon.HMENU hSysMenu; // handle of system menu.PLOGFONT pLogFont; // pointer to logical font.char* spCaption; // the caption of control.LINT id; // the identifier of child window.LFSCROLLBARINFO vscroll; // the vertical scroll bar information.LFSCROLLBARINFO hscroll; // the horizital scroll bar information./** the window renderer */WINDOW_ELEMENT_RENDERER* we_rdr;HDC privCDC; // the private client DC.INVRGN InvRgn; // the invalid region of this control.PGCRINFO pGCRInfo; // pointer to global clip region info struct.// the Z order node,// only for control with WS_EX_CTRLASMAINWIN.int idx_znode;PCARETINFO pCaretInfo; // pointer to system caret info struct.DWORD dwAddData; // the additional data.DWORD dwAddData2; // the second addtional data.LRESULT (*ControlProc) (HWND, UINT, WPARAM, LPARAM);PMAINWIN pMainWin; // the main window that contains this control.struct tagCONTROL* pParent;// the parent of this control./** Child windows.*/struct tagCONTROL* children;// the first child control.struct tagCONTROL* active;// the active child control.struct tagCONTROL* old_under_pointer;// the old under pointer child control.struct tagCONTROL* primitive;// the primitive child of mouse event.NOTIFPROC notif_proc; // the notification callback procedure./** window element data.*/struct _wnd_element_data* wed;/** some internal fields* VM[2018年01月18日]: Move these fields from header to here to compatible with WINDOWINFO*/unsigned char DataType; // the data typeunsigned char WinType; // the window typeunsigned short Flags; // speical runtime flags, such EraseBkGnd flags/** The following members are only implemented for control.*/struct tagCONTROL* next; // the next sibling control.struct tagCONTROL* prev; // the prev sibling control.PCTRLCLASSINFO pcci; // pointer to Control Class Info struct.MASKRECT * mask_rects;//if a control is has WS_EX_CTRLASMAINWIN, this proc is the next control as main window/** MainWindow->hFirstChildAsMainWin --->* control1->next_ctrl_as_main ---->* control2->next_ctrl_as_main ---->* .....** Control have to list, one for browsers, the other for as main cotrol list:** hFirstChild :* control1->next-->* control2->next-->* control3->next-->* ....** hFirstChildAsMainWin:* control1->next_ctrl_as_main -->* control2-> .....** THE TWO LIST USE A SAME CONTROL OBJECT,* So, When Destroy a Control: YOU MUST REMOVE* ITSELF FROM PARENT'S hFirstChildAsMainWin'S LIST**/struct tagCONTROL* next_ctrl_as_main;}CONTROL;typedef CONTROL* PCONTROL;/* Function definitions */#ifdef __cplusplusextern "C" {#endif /* __cplusplus */BOOL mg_InitControlClass (void);void mg_TerminateControlClass (void);PCTRLCLASSINFO gui_GetControlClassInfo (const char* szClassName);int gui_ControlClassDataOp (int Operation, PWNDCLASS pWndClass);MG_EXPORT int AddNewControlClass (PWNDCLASS pWndClass);MG_EXPORT BOOL SetWindowExStyle (HWND hWnd, DWORD dwExStyle);int gui_DeleteControlClass (const char* szClassName);void gui_EmptyControlClassInfoTable (void);PCONTROL gui_Control (HWND hWnd); // check whether hWnd is control// and return pointer to control hWnd.#ifdef _DEBUGvoid DumpCtrlClassInfoTable (void);#endif#ifdef __cplusplus}#endif /* __cplusplus */#endif /* GUI_CTRLCLASS_H */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。