YYXCTRL.CPP
上传用户:wtrl82617
上传日期:2007-01-07
资源大小:187k
文件大小:3k
源码类别:

界面编程

开发平台:

DOS

  1. // 1993 (c) ALL RIGHTS RESERVED
  2. // AUTHOR:  XuYongYong
  3. /*  yyxctrl.cpp
  4. */
  5. #include "yyxctrl.h"
  6. #include "applicat.h"
  7. /**************************************************************************/
  8. void control_class::clear_control ( )
  9. {
  10. // setcolor (WHITE);
  11. // setfillstyle (SOLID_FILL, WHITE);
  12. // if (title[0] !='x0')  {  bar (title_pos_x,title_pos_y,
  13. // title_pos_x+textwidth(title),title_pos_y +textheight (title)); }
  14. FillRect (bounds, WHITE);
  15. }
  16. void  control_class::setup_control( )
  17. {   // used for setting up inner variables , protected or private
  18. // not public---> public is defined by outer functions
  19. }
  20. void  control_class::update_control ( )
  21. {
  22. clear_control();
  23. setup_control();
  24. draw ();
  25. control_change_value (current_value);
  26. }
  27. void control_class::draw ( )
  28. {   if ( status & INVISIBLE) return;    // INVISIBLE
  29. setcolor (BLACK);
  30. outtextxy (title_pos_x,title_pos_y,title);
  31. draw_hotkey(title,hotkey,title_pos_x,title_pos_y);
  32. }
  33. void control_class::select ( )
  34. {  // INVISIBLE here not detected //to save time
  35. setcolor (DARKGRAY);
  36. setlinestyle( DOTTED_LINE,1,NORM_WIDTH );
  37. rectangle (title_pos_x-2,title_pos_y+1,title_pos_x+textwidth (title)+2,
  38. title_pos_y+textheight (title)+2 );
  39. setlinestyle( SOLID_LINE,1,NORM_WIDTH );
  40. }
  41. void control_class::unselect ( )
  42. {  // INVISIBLE here not detected //to save time
  43. setcolor (LIGHTGRAY);
  44. setlinestyle( DOTTED_LINE,1,NORM_WIDTH );
  45. rectangle (title_pos_x-2,title_pos_y+1,title_pos_x+textwidth (title)+2,
  46. title_pos_y+textheight (title)+2 );
  47. setlinestyle( SOLID_LINE,1,NORM_WIDTH );
  48. }
  49. int control_class::control_change_value
  50. ( int new_value)
  51. {
  52. if ((new_value< min_value)||
  53. (new_value> max_value)) return TRUE;
  54. else return FALSE;
  55. }
  56. int control_class:: key_pressed_handler (int key_scan_num )
  57. {   return FALSE;
  58. }
  59. int control_class::msg_handler (MSG& message)
  60. { // may be should exists in group key_pressed_handler
  61. switch (message.Action){
  62. case KeyPressedMSG:
  63. return key_pressed_handler( key_code );
  64. }
  65. return FALSE;
  66. }
  67. control_class::control_class
  68. (int ID,char *title_hotkey,byte status,byte type,
  69.  int left,int top,int width,int height,
  70.  int min_value,int max_value,int current_value
  71.  ):object_class (ID,title_hotkey,status,type,left,top,width,height)
  72. {// Tcontrol  *ptemp_control, *ptemp1;
  73. title_pos_x =left+20;
  74. title_pos_y =top+2;
  75. this->min_value =min_value;
  76. this->current_value =current_value;
  77. this->max_value =max_value;
  78. pleft  =this;     /* in windows */
  79. pright =this;     /* user complete the last */
  80. }
  81. control_class::~control_class()
  82. {
  83. }