亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? propertyitemeditors.h

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
      return 0;
   }

   // Calendar message handlers
   
   LRESULT OnKillFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      LRESULT lRes = m_wndCalendar.DefWindowProc();
      m_wndCalendar.ShowWindow(SW_HIDE);
      return lRes;
   }

   // Ownerdrawn button message handler

   LRESULT OnDrawItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
   {
      LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT) lParam;
      if( m_wndButton != lpdis->hwndItem ) return 0;
      CDCHandle dc(lpdis->hDC);
      // Paint as dropdown button
      dc.DrawFrameControl(&lpdis->rcItem, DFC_SCROLL, (lpdis->itemState & ODS_SELECTED) ? DFCS_SCROLLDOWN | DFCS_PUSHED : DFCS_SCROLLDOWN);
      return 0;
   }
};


/////////////////////////////////////////////////////////////////////////////
// Editor with dropdown list

class CPropertyListWindow : 
   public CPropertyDropWindowImpl<CPropertyListWindow>
{
public:
   DECLARE_WND_SUPERCLASS(_T("WTL_InplacePropertyList"), CEdit::GetWndClassName())

   CContainedWindowT<CListBox> m_wndList;
   int m_cyList;      // Used to resize the listbox when first shown

   typedef CPropertyDropWindowImpl<CPropertyListWindow> baseClass;

   BEGIN_MSG_MAP(CPropertyListWindow)
      MESSAGE_HANDLER(WM_CREATE, OnCreate)
      MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
      MESSAGE_HANDLER(WM_CHAR, OnChar)
      MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem)
      COMMAND_CODE_HANDLER(BN_CLICKED, OnButtonClicked)
      CHAIN_MSG_MAP(baseClass)
   ALT_MSG_MAP(1) // Button
      CHAIN_MSG_MAP_ALT(baseClass, 1)
   ALT_MSG_MAP(2) // List
      MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
      MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus)
      MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
   END_MSG_MAP()

   void AddItem(LPCTSTR pstrItem)
   {
      ATLASSERT(m_wndList.IsWindow());
      ATLASSERT(!::IsBadStringPtr(pstrItem,-1));
      m_wndList.AddString(pstrItem);
      m_cyList = 0;
   }
   void SelectItem(int idx)
   {
      ATLASSERT(m_wndList.IsWindow());      
      m_wndList.SetCurSel(idx);
   }

   LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
   {
      // Create dropdown list (as hidden)
      RECT rc = CWindow::rcDefault;
      m_wndList.Create(this, 2, m_hWnd, &rc, NULL, WS_POPUP | WS_BORDER | WS_VSCROLL);
      ATLASSERT(m_wndList.IsWindow());
      m_wndList.SetFont( CWindow(GetParent()).GetFont() );
      // Go create the rest of the control...
      bHandled = FALSE;
      return 0;
   }
   LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
   {
      if( m_wndList.IsWindow() ) m_wndList.DestroyWindow();
      bHandled = FALSE;
      return 0;
   }
   LRESULT OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
   {
      // Let the dropdown-box handle the keypress...
      if( m_wndList.GetStyle() & WS_VISIBLE ) {
         m_wndList.PostMessage(uMsg, wParam, lParam);
      }
      else {
         TCHAR szStr[] = { (TCHAR) wParam, _T('\0') };
         int idx = m_wndList.FindString(-1, szStr);
         if( idx == LB_ERR ) return 0;
         m_wndList.SetCurSel(idx);
         BOOL bDummy;
         OnKeyDown(WM_KEYDOWN, VK_RETURN, 0, bDummy);      
      }
      return 0; // Don't allow any editing
   }
   LRESULT OnButtonClicked(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
   {
      if( m_cyList == 0 ) {
         // Resize list to fit all items (but not more than 140 pixels)
         const int MAX_HEIGHT = 140;
         int cy = m_wndList.GetCount() * m_wndList.GetItemHeight(0);
         m_cyList = min( MAX_HEIGHT, cy + (::GetSystemMetrics(SM_CYBORDER)*2) );
      }
      // Move the dropdown under the item
      RECT rcWin;
      GetWindowRect(&rcWin);
      RECT rc = { rcWin.left, rcWin.bottom, rcWin.right, rcWin.bottom + m_cyList };
      m_wndList.SetWindowPos(HWND_TOPMOST, &rc, SWP_SHOWWINDOW);
      return 0;
   }

   // List message handlers
   
   LRESULT OnKeyDown(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
   {
      switch( wParam ) {
      case VK_RETURN:
         {
            int idx = m_wndList.GetCurSel();
            if( idx >= 0 ) {
               // Copy text from list to item
               int len = m_wndList.GetTextLen(idx) + 1;
               LPTSTR pstr = (LPTSTR) _alloca(len * sizeof(TCHAR));
               m_wndList.GetText(idx, pstr);
               SetWindowText(pstr);
               // Announce the new value
               ::SendMessage(GetParent(), WM_USER_PROP_UPDATEPROPERTY, 0, (LPARAM) m_hWnd);
            }
         }
         ::SetFocus(GetParent());
         break;
      case VK_ESCAPE:
         // Announce the cancellation
         ::SendMessage(GetParent(), WM_USER_PROP_CANCELPROPERTY, 0, (LPARAM) m_hWnd);
         ::SetFocus(GetParent());
         break;
      }
      bHandled = FALSE;
      return 0;
   }
   LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      LRESULT lRes = m_wndList.DefWindowProc();
      // Selected an item? Fake RETURN key to copy new value...
      BOOL bDummy;
      OnKeyDown(WM_KEYDOWN, VK_RETURN, 0, bDummy);
      return lRes;
   }
   LRESULT OnKillFocus(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      LRESULT lRes = m_wndList.DefWindowProc();
      m_wndList.ShowWindow(SW_HIDE);
      return lRes;
   }

   // Ownerdrawn button message handler

   LRESULT OnDrawItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
   {
      LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT) lParam;
      if( m_wndButton != lpdis->hwndItem ) return 0;
      CDCHandle dc(lpdis->hDC);
      // Paint as dropdown button
      dc.DrawFrameControl(&lpdis->rcItem, DFC_SCROLL, (lpdis->itemState & ODS_SELECTED) ? DFCS_SCROLLDOWN | DFCS_PUSHED : DFCS_SCROLLDOWN);
      return 0;
   }
};


/////////////////////////////////////////////////////////////////////////////
// Editor with embedded ListBox control

class CPropertyComboWindow : 
   public CPropertyDropWindowImpl<CPropertyComboWindow, CStatic>
{
public:
   DECLARE_WND_SUPERCLASS(_T("WTL_InplacePropertyCombo"), CStatic::GetWndClassName())

   CContainedWindowT<CListBox> m_wndList;
   HWND m_hWndCombo;  // Listbox supplied by Property class
   int m_cyList;      // Used to resize the listbox when first shown

   typedef CPropertyDropWindowImpl<CPropertyComboWindow, CStatic> baseClass;

   CPropertyComboWindow() : 
      m_wndList(this, 2), 
      m_hWndCombo(NULL), 
      m_cyList(0)
   {
   }

   BEGIN_MSG_MAP(CPropertyComboWindow)
      MESSAGE_HANDLER(WM_CREATE, OnCreate)
      MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
      MESSAGE_HANDLER(WM_PAINT, OnPaint)
      MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem)
      COMMAND_CODE_HANDLER(BN_CLICKED, OnButtonClicked)
      CHAIN_MSG_MAP( baseClass )
   ALT_MSG_MAP(1) // Button
      CHAIN_MSG_MAP_ALT( baseClass, 1 )
   ALT_MSG_MAP(2) // List
      MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
   END_MSG_MAP()

   LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
   {
      ATLASSERT(::IsWindow(m_hWndCombo));      
      m_wndList.SubclassWindow(m_hWndCombo);
      // Go create the rest of the control...
      bHandled = FALSE;
      return 0;
   }
   LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
   {
      if( ::GetCapture() == m_wndList ) ::ReleaseCapture();
      if( m_wndList.IsWindow() ) m_wndList.UnsubclassWindow();
      if( ::IsWindowVisible(m_hWndCombo) ) ::ShowWindow(m_hWndCombo, SW_HIDE);
      bHandled = FALSE;
      return 0;
   }
   LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
   {
      CPaintDC dc( m_hWnd );      
      RECT rcButton;
      m_wndButton.GetWindowRect(&rcButton);
      RECT rcClient;
      GetClientRect(&rcClient);
      rcClient.right -= rcButton.right - rcButton.left;
      DRAWITEMSTRUCT dis = { 0 };
      dis.hDC = dc;
      dis.hwndItem = m_wndList;
      dis.CtlID = m_wndList.GetDlgCtrlID();
      dis.CtlType = ODT_LISTBOX;
      dis.rcItem = rcClient;
      dis.itemState = ODS_DEFAULT | ODS_COMBOBOXEDIT;
      dis.itemID = m_wndList.GetCurSel();
      dis.itemData = (int) m_wndList.GetItemData(dis.itemID);
      m_wndList.SendMessage(OCM_DRAWITEM, dis.CtlID, (LPARAM) &dis);
      return 0;
   }
   LRESULT OnButtonClicked(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
   {
      if( m_cyList == 0 ) {
         // Resize list to fit all items (but not more than 140 pixels)
         const int MAX_HEIGHT = 140;
         int cy = m_wndList.GetCount() * m_wndList.GetItemHeight(0);
         m_cyList = min( MAX_HEIGHT, cy + (::GetSystemMetrics(SM_CYBORDER)*2) );
      }
      // Move the dropdown under the item
      RECT rcWin;
      GetWindowRect(&rcWin);
      RECT rc = { rcWin.left, rcWin.bottom, rcWin.right, rcWin.bottom + m_cyList };
      m_wndList.SetWindowPos(HWND_TOPMOST, &rc, SWP_SHOWWINDOW);
      m_wndList.SetFocus();
      ::SetCapture(m_wndList);
      return 0;
   }

   // List message handlers

   LRESULT OnLButtonUp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
   {      
      LRESULT lRes = m_wndList.DefWindowProc();
      ::ReleaseCapture();
      m_wndList.ShowWindow(SW_HIDE);
      //
      POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) };
      BOOL bOutside = TRUE;
      int iSel = m_wndList.ItemFromPoint(pt, bOutside);
      if( !bOutside ) {
         m_wndList.SetCurSel(iSel);
         Invalidate();
         // Announce the new value
         ::PostMessage(GetParent(), WM_USER_PROP_UPDATEPROPERTY, 0, (LPARAM) m_hWnd);
      }
      return lRes;
   }

   // Ownerdrawn button message handler

   LRESULT OnDrawItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
   {
      LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT) lParam;
      if( m_wndButton != lpdis->hwndItem ) return 0;
      CDCHandle dc(lpdis->hDC);
      // Paint as dropdown button
      dc.DrawFrameControl(&lpdis->rcItem, DFC_SCROLL, (lpdis->itemState & ODS_SELECTED) ? DFCS_SCROLLDOWN | DFCS_PUSHED : DFCS_SCROLLDOWN);
      return 0;
   }
};


/////////////////////////////////////////////////////////////////////////////
// Editor with browse button

class CPropertyButtonWindow : 
   public CPropertyDropWindowImpl<CPropertyButtonWindow>
{
public:
   DECLARE_WND_SUPERCLASS(_T("WTL_InplacePropertyButton"), CEdit::GetWndClassName())

   IProperty* m_prop; // BUG: Dangerous reference

   typedef CPropertyDropWindowImpl<CPropertyButtonWindow> baseClass;

   BEGIN_MSG_MAP(CPropertyButtonWindow)
      COMMAND_CODE_HANDLER(BN_CLICKED, OnButtonClicked)
      MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem)
      CHAIN_MSG_MAP( baseClass )
   ALT_MSG_MAP(1) // Button
      CHAIN_MSG_MAP_ALT( baseClass, 1 )
   END_MSG_MAP()

   LRESULT OnButtonClicked(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
   {
      ATLASSERT(m_prop);
      // Call Property class' implementation of BROWSE action
      m_prop->Activate(PACT_BROWSE, 0);
      ::PostMessage(GetParent(), WM_USER_PROP_UPDATEPROPERTY, 0, (LPARAM) m_hWnd);
      return 0;
   }

   LRESULT OnDrawItem(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
   {
      LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT) lParam;
      if( m_wndButton != lpdis->hwndItem ) return 0;
      CDCHandle dc(lpdis->hDC);
      // Paint as ellipsis button
      dc.DrawFrameControl(&lpdis->rcItem, DFC_BUTTON, (lpdis->itemState & ODS_SELECTED) ? DFCS_BUTTONPUSH | DFCS_PUSHED : DFCS_BUTTONPUSH);
      dc.SetBkMode(TRANSPARENT);
      LPCTSTR pstrEllipsis = _T("...");
      dc.DrawText(pstrEllipsis, ::lstrlen(pstrEllipsis), &lpdis->rcItem, DT_CENTER | DT_EDITCONTROL | DT_SINGLELINE | DT_VCENTER);
      return 0;
   }
};


#endif // __PROPERTYITEMEDITORS__H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本高清不卡aⅴ免费网站| 成人黄色网址在线观看| 欧美精选在线播放| 视频一区中文字幕| 日韩免费视频一区二区| 国产中文字幕一区| 国产精品久久久久久久久免费相片 | 91美女在线观看| 亚洲国产精品麻豆| 精品久久国产97色综合| 高清久久久久久| 亚洲自拍偷拍欧美| 欧美xxxx老人做受| 91在线观看地址| 日本aⅴ免费视频一区二区三区| 久久蜜臀中文字幕| 色狠狠av一区二区三区| 久久精品国产在热久久| 亚洲视频一区在线| 91精品国产一区二区三区| 国产原创一区二区| 亚洲最新视频在线播放| 欧美成人精品1314www| 北岛玲一区二区三区四区| 一区二区三区成人| 精品久久久久久久久久久久久久久| 国产精品系列在线播放| 一区二区在线观看免费视频播放| 欧美精品自拍偷拍动漫精品| 国产一区二区精品久久99| 一个色在线综合| 久久久不卡网国产精品一区| 欧美午夜精品久久久久久超碰| 久久69国产一区二区蜜臀| 亚洲欧美一区二区不卡| 精品国产91乱码一区二区三区| av一本久道久久综合久久鬼色| 日韩激情视频在线观看| 国产精品理伦片| 日韩三级.com| 欧美日韩一区二区电影| 丰满少妇在线播放bd日韩电影| 一级中文字幕一区二区| 久久精品免视看| 欧美日韩一区三区四区| 丁香啪啪综合成人亚洲小说| 免费成人结看片| 午夜激情久久久| 亚洲精品乱码久久久久久黑人| 久久夜色精品国产欧美乱极品| 欧美日韩视频在线观看一区二区三区 | 亚洲综合色噜噜狠狠| 久久久夜色精品亚洲| 欧美一级在线免费| 欧美色男人天堂| 99re热视频精品| 国产成人精品一区二区三区四区| 午夜精品成人在线视频| 亚洲一区精品在线| 亚洲另类春色国产| 国产精品国产三级国产有无不卡| 久久你懂得1024| 精品久久久久久久久久久久久久久 | 一本在线高清不卡dvd| 成人免费va视频| 国产精品99久久久久| 精品一区二区三区视频 | 国产麻豆精品95视频| 精品在线视频一区| 久久丁香综合五月国产三级网站 | 国模娜娜一区二区三区| 日韩电影在线一区二区| 午夜欧美视频在线观看| 亚洲成人av福利| 亚洲va欧美va国产va天堂影院| 亚洲最大成人综合| 一区二区三区四区蜜桃| 一区二区三区四区亚洲| 亚洲综合丝袜美腿| 日韩伦理av电影| 中文字幕日韩欧美一区二区三区| 国产精品久久久久一区| 中文字幕欧美一| 亚洲欧美日韩国产成人精品影院 | 日本一区二区在线不卡| 国产精品青草综合久久久久99| 国产精品美女久久久久久| 国产精品的网站| 一区二区三区高清不卡| 亚洲影视在线观看| 日韩福利视频网| 国产一区二区三区免费看| 精品在线免费视频| 国产激情一区二区三区四区| 99精品视频一区二区三区| 在线观看成人免费视频| 欧美日韩国产中文| xvideos.蜜桃一区二区| 国产精品国产三级国产a| 亚洲综合免费观看高清完整版在线| 视频在线在亚洲| 国产精品亚洲综合一区在线观看| jiyouzz国产精品久久| 欧美午夜一区二区三区| 欧美精品一区二区三区高清aⅴ| 中文字幕乱码日本亚洲一区二区 | 香蕉加勒比综合久久| 蜜桃在线一区二区三区| 成人丝袜高跟foot| 欧美日韩一卡二卡| 国产欧美日韩精品一区| 一区二区三区四区在线播放| 日韩精品成人一区二区在线| 国产精品资源网| 欧美日韩一区二区三区免费看| 日韩欧美另类在线| 亚洲欧美激情小说另类| 久久激情五月婷婷| 91麻豆国产福利在线观看| 日韩三级伦理片妻子的秘密按摩| 中文字幕第一区| 青青草伊人久久| 色婷婷激情综合| 久久久久久麻豆| 亚洲午夜电影网| 成人免费视频播放| 91精品国产一区二区三区蜜臀| 亚洲欧洲99久久| 久久国产成人午夜av影院| 色94色欧美sute亚洲线路二| 精品成人一区二区| 性做久久久久久久免费看| 成人sese在线| 久久综合九色综合欧美98| 亚洲福利视频一区二区| 99久久综合99久久综合网站| 日韩一区二区三区视频| 亚洲一区二区三区国产| 成人精品免费网站| 久久日一线二线三线suv| 五月激情综合色| 日本精品裸体写真集在线观看 | 日本高清无吗v一区| 2017欧美狠狠色| 捆绑紧缚一区二区三区视频| 日本国产一区二区| 中文字幕av一区二区三区免费看 | 蜜臀国产一区二区三区在线播放| 色综合一个色综合亚洲| 中日韩免费视频中文字幕| 国产一区二区三区观看| 欧美变态tickling挠脚心| 天涯成人国产亚洲精品一区av| 色老头久久综合| 亚洲日穴在线视频| 91视频国产资源| 亚洲视频一区二区在线| 91色.com| 亚洲精品成人在线| 在线观看国产91| 亚洲图片欧美视频| 欧美日韩不卡视频| 日韩中文字幕区一区有砖一区| 在线观看免费成人| 亚洲成av人综合在线观看| 欧美在线不卡一区| 午夜电影久久久| 欧美蜜桃一区二区三区| 日韩在线一二三区| 日韩精品一区在线| 国产呦精品一区二区三区网站| 精品国产乱码久久久久久影片| 精品制服美女久久| 国产清纯在线一区二区www| 国产91在线|亚洲| 国产精品久久久久久久久动漫 | 亚洲国产日日夜夜| 欧美日韩国产天堂| 婷婷六月综合网| 日韩午夜av电影| 激情成人综合网| 国产亚洲女人久久久久毛片| 成人自拍视频在线观看| 国产精品成人免费| 在线免费观看不卡av| 五月天亚洲婷婷| 久久综合色综合88| 99re热视频这里只精品| 亚洲地区一二三色| 欧美大尺度电影在线| 国产成人精品一区二区三区网站观看| 国产人成一区二区三区影院| 91麻豆免费看片| 美女诱惑一区二区| 欧美国产乱子伦| 欧美色倩网站大全免费| 久久99日本精品| 亚洲日本护士毛茸茸| 亚洲精品一区二区三区蜜桃下载| 国产在线精品一区二区三区不卡 |