Wnds.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*****************************************************************************************
  2. // 剑侠引擎,界面窗口元素体系头文件
  3. // Copyright : Kingsoft 2002
  4. // Author :   Wooy(Wu yue)
  5. // CreateTime: 2002-7-9
  6. ------------------------------------------------------------------------------------------
  7. 界面元素(控件)的共同基类为KWndWindow,Wnd_前缀打头的一组函数用于使窗口形成一个大集合,
  8. 完成一些特定的功能。
  9.     窗口系统支持热键(HotKey)功能,最多同时支持24个热键设置,此上限数值可被修改。
  10. *****************************************************************************************/
  11. class KWndWindow;
  12. struct KUiDraggedObject;
  13. struct iKWndGameSpace;
  14. enum CURSOR_INDEX
  15. {
  16. CURSOR_NORMAL = 0,
  17. CURSOR_POINT_TO_ATTACKABLE, //移到攻击目标上
  18. CURSOR_POINT_TO_OBJ_NPC, //移到一般OBJ或NPC上
  19. CURSOR_PICKABLE, //可拾取
  20. CURSOR_SKILL_ENABLE, //移到可使用增益技能的角色对象身上
  21. CURSOR_BUY, //买东西
  22. CURSOR_SELL, //卖东西
  23. CURSOR_REPAIR, //修东西
  24.     CURSOR_USE,                 //看对象的图标
  25. CURSOR_INDEX_COUNT,
  26. };
  27. //--------------------------------------------------------------------------
  28. // 绘制被拖内容函数原型
  29. //--------------------------------------------------------------------------
  30. // 参数: x, y -> 鼠标指针当前的坐标位置
  31. // Obj -> 被拖动的对象信息结构
  32. // nDropQeuryResult -> 当前目标地方返回的查询可否接受拖来的对象的结果
  33. // 返回:表示绘制完被拖动的物体之后是否要继续绘制鼠标指针。如果鼠标指针单前属于隐藏状态则,此函数返回值被忽略
  34. typedef int (*fnDrawDraggedObj)(int x, int y, const KUiDraggedObject& Obj, int nDropQueryResult);
  35. enum WND_LAYER_LIST
  36. {
  37. WL_LOWEST, //最底层
  38. WL_NORMAL, //一般
  39. WL_TOPMOST, //最顶层
  40. };
  41. void Wnd_Cleanup(); //清除工作,销毁全部的窗口
  42. void Wnd_GetScreenSize(int& nWidth, int& nHeight);//获取屏幕范围大小
  43. void Wnd_SetScreenSize(int nWidth, int nHeight);  //设置屏幕范围大小
  44. void Wnd_RenderWindows(); //绘制界面系统
  45. void Wnd_AddWindow(KWndWindow* pWnd, WND_LAYER_LIST eLayer = WL_NORMAL); //添加窗口
  46. void Wnd_OnWindowDelete(KWndWindow* pWnd); //响应窗口的删除
  47. void Wnd_SetGameSpaceWnd(KWndWindow* pWnd); //设置运行游戏窗口
  48. void Wnd_GameSpaceHandleInput(bool bHandle);
  49. void Wnd_TransmitInputToGameSpace(unsigned int uMsg, unsigned int uParam, int nParam);
  50. void Wnd_ShowHideGameSpace(bool bShow);
  51. //----输入事件处理----
  52. //处理输入,界面系统如果处理了输入事件,则返回非0值,否则返回0值。
  53. void Wnd_ProcessInput(unsigned int uMsg, unsigned int uParam, int nParam);
  54. void Wnd_Heartbeat();
  55. //----鼠标指针操作----
  56. void Wnd_ShowCursor(int bShow); //改变鼠标指针显示状态
  57. void Wnd_SetCursorPos(int x, int y); //设置鼠标指针位置
  58. void Wnd_GetCursorPos(int* px, int* py); //获取鼠标指针位置
  59. void Wnd_LoadCursor(int nIndex, const char* pImgFile);//载入鼠标指针资源
  60. int Wnd_SwitchCursor(int nIndex); //切换当前鼠标指针图形
  61. void Wnd_RestoreCursor(); //还原鼠标图形
  62. //----拖动对象----
  63. //开始拖动物体
  64. int Wnd_DragBegin(const KUiDraggedObject* pObj, fnDrawDraggedObj fnDrawObjFunc);
  65. int Wnd_GetDragObj(KUiDraggedObject* pObj);
  66. void Wnd_DragFinished(); //结束拖动状态
  67. //----处理输入焦点窗口----
  68. void Wnd_SetFocusWnd(KWndWindow* pWnd); //设置输入焦点窗口
  69. KWndWindow* Wnd_GetFocusWnd(); //获取输入焦点窗口
  70. //----跟踪鼠标事件----
  71. void Wnd_SetCapture(KWndWindow* pWnd); //设置跟踪鼠标动作窗口
  72. void Wnd_ReleaseCapture(); //释放窗口对鼠标动作的跟踪
  73. //----处理窗口独占----
  74. void Wnd_SetExclusive(KWndWindow* pWnd); //设置独占窗口
  75. void Wnd_ReleaseExclusive(KWndWindow* pWnd); //释放窗口的独占状态