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

模拟服务器

开发平台:

C/C++

  1. /*****************************************************************************************
  2. // 界面窗口体系结构--按键窗口
  3. // Copyright : Kingsoft 2002
  4. // Author :   Wooy(Wu yue)
  5. // CreateTime: 2002-7-22
  6. ------------------------------------------------------------------------------------------
  7. 按钮窗口。
  8. 按钮可以包括以下特性:按钮按下与未被按下显示不同的图形;指针移动到按钮上方时显示动画;
  9. 每点击一次按钮切换一次按钮的是否按下状态(CheckBox)。
  10. *****************************************************************************************/
  11. #pragma once
  12. #include "WndImage.h"
  13. #define WNDBTN_ES_FILTER 0x00ff
  14. #define WNDBTN_ES_ANIMATION 0x0001 //鼠标指针停留在窗口上方时显示动画
  15. #define WNDBTN_ES_CHECKBOX 0x0002 //切换状态的按扭
  16. #define WNDBTN_ES_SEND_HOLD_MSG 0x0004 //发送鼠标被按住不放的消息
  17. #define WNDBTN_ES_NO_OVERSOUND 0x0008 //鼠标指针移到上方时,不播放声音效果
  18. #define WNDBTN_F_DOWN 0x0200 //按纽被按下
  19. #define WNDBTN_F_CHECKED WNDBTN_F_DOWN //按纽被选中
  20. #define WNDBTN_F_OVER 0x0400 //鼠标停留在窗口上方
  21. class KWndButton : public KWndImage
  22. {
  23. protected:
  24. unsigned short m_Flag;
  25. private:
  26. short m_nUpFrame;
  27. short m_nDownFrame;
  28. short m_nCheckOverFrame;
  29. short m_nOverStartFrame;
  30. short m_nDisableFrame;
  31. static KWndButton* m_pPressedDownBtn; //被点击但是没有被释放的按钮
  32. char m_szTip[64];
  33. int m_nTipLen;
  34. public:
  35. KWndButton();
  36. virtual int Init(KIniFile* pIniFile, const char* pSection);//初始化
  37. virtual const char* GetShortKey() {return NULL;} //取快捷键,用于Tip显示
  38. virtual int WndProc(unsigned int uMsg, unsigned int uParam, int nParam);//窗口函数
  39. virtual void PaintWindow(); //窗体绘制
  40. int IsButtonChecked(); //按钮是否出于按下状态
  41. int IsButtonActive();
  42. void CheckButton(int bChecked); //设置按钮的按下状态
  43. void Enable(int bEnable); //禁止或者允许使窗口被操作
  44. void Clone(KWndButton* pCopy);
  45. static void SetAllButtonTipTextColor(unsigned int uColor); //设置所有按钮提示名称文字的颜色
  46. static void EnableAllButtonTip(int bEnable); //禁止/允许所有按钮的提示文字
  47. virtual void OnButtonClick(){}
  48. virtual int GetToolTipInfo(char* szTip, int nMax);
  49. int SetToolTipInfo(char* szTip, int nMax);
  50. private:
  51. void OnLBtnDown(bool bDoubleClick); //响应鼠标左键在此按下
  52. void OnLBtnUp(); //响应鼠标左键在此放开
  53. void OnLBtnDownMove(); //响应鼠标左键按下时的移动
  54. private:
  55. static unsigned int ms_uBtnTipTextColor; //按钮提示名称文字的颜色
  56. static int ms_nDisableBtnTip; //是否禁止按钮的提示文字
  57. };
  58. #include "WndText.h"
  59. #include "WndMovingImage.h"
  60. #include "WndImagePart.h"
  61. class KWndImageTextButton : public KWndButton
  62. {
  63. protected:
  64. KWndMovingImage m_Image;
  65. KWndImagePart m_ImagePart;
  66. KWndText32 m_Text;
  67. BOOL bPart;
  68. public:
  69. KWndImageTextButton();
  70. virtual int Init(KIniFile* pIniFile, const char* pSection);//初始化
  71. void Set2IntText(int nNumber1, int nNumber2, char Separator);
  72. void SetIntText(int nNumber, char Separator);
  73. void Set2IntValue(int nNumber1, int nNumber2);
  74. void SetText(const char* pText, int nLen = -1); //设置文本文字
  75. int GetText(char* pBuffer, int nSize); //获取字符串内容
  76. };