controls.h
上传用户:dfhlxjd
上传日期:2007-01-07
资源大小:12k
文件大小:2k
源码类别:

Shell编程

开发平台:

Visual C++

  1. //----------------------------------------
  2. // (c) Reliable Software 1997
  3. //----------------------------------------
  4. #ifndef _CONTROLS_H_INCLUDED
  5. #define _CONTROLS_H_INCLUDED
  6. #include <windows.h>
  7. #include "resource.h"
  8. class SimpleControl
  9. {
  10. public:
  11.     SimpleControl (HWND hwndParent, int id, bool initialState=true)
  12.         : _hWnd (GetDlgItem (hwndParent, id))
  13.     {
  14.         if (initialState == false)
  15.             Disable();
  16.     }
  17.     void Hide ()
  18.     {
  19.         ::ShowWindow(_hWnd , SW_HIDE);
  20.     }
  21.     void Show ()
  22.     {
  23.         ::ShowWindow(_hWnd , SW_SHOW);
  24.     }
  25.     bool IsVisible()
  26.     {
  27.         return(::IsWindowVisible(_hWnd ) != 0);
  28.     }
  29.     void SetFocus ()
  30.     {
  31.         ::SetFocus (_hWnd);
  32.     }
  33.     void Enable()
  34.     {
  35.         ::EnableWindow(_hWnd , TRUE);
  36.     }
  37.     void Disable()
  38.     {
  39.         ::EnableWindow(_hWnd , FALSE);
  40.     }
  41.     HWND Hwnd () const { return _hWnd; }
  42.     void Update()
  43.     {
  44.         ::UpdateWindow(_hWnd);
  45.     }
  46. protected:
  47.     HWND _hWnd;
  48. };
  49. class Button : public SimpleControl
  50. {
  51. public:
  52.    Button(HWND hwndParent, int id, bool initialState=true)
  53.        : SimpleControl(hwndParent, id, initialState)
  54.    {}
  55.    void SetName( char const * newName )
  56.    {
  57.       SendMessage(_hWnd, WM_SETTEXT, 0, (LPARAM)newName );
  58.    }
  59. };
  60. class Edit: public SimpleControl
  61. {
  62. public:
  63.    Edit (HWND hwndParent, int id, bool initialState=true)
  64.         : SimpleControl (hwndParent, id, initialState)
  65.    {}
  66.    void SetString (char const * buf)
  67.    {
  68.        SendMessage (_hWnd, WM_SETTEXT, 0, (LPARAM) buf);
  69.    }
  70.    void Clear ()
  71.    {
  72.        SendMessage (_hWnd, WM_SETTEXT, 0, (LPARAM) "");
  73.        Update();
  74.    }
  75.    // code is the HIWORD (wParam)
  76.    static bool IsChanged (int code)
  77.    {
  78.        return code == EN_CHANGE;
  79.    }
  80.    int GetLength ()
  81.    {
  82.        return (int)(SendMessage (_hWnd, WM_GETTEXTLENGTH, 0, 0));
  83.    }
  84.    void GetString (char* buf, int len)
  85.    {
  86.        SendMessage (_hWnd, WM_GETTEXT, (WPARAM) len, (LPARAM) buf);
  87.    }
  88.    void Select ()
  89.    {
  90.        SendMessage (_hWnd, EM_SETSEL, 0, -1);
  91.    }
  92.    void ClearSelection ()
  93.    {
  94.        SendMessage (_hWnd, EM_SETSEL, (WPARAM)-1, 0);
  95.    }
  96. };
  97. #endif // _CONTROLS_H_INCLUDED