<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      CListCtrl 防止閃爍,調整行顯示長度

      1,設置重繪

       

       2,新建類,繼承CListCtrl

      #pragma once
      #include "afxcmn.h"
      
      class DBufferListCtrl :
          public CListCtrl
      {
      public:
          DBufferListCtrl(void);
          ~DBufferListCtrl(void);
      
      
          DECLARE_MESSAGE_MAP()
          afx_msg void OnPaint();
          afx_msg BOOL OnEraseBkgnd(CDC* pDC);
      
      
          CString GetItemText(int nItem, int nSubItem) const;
      
          virtual void DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/);
      };
      
      #include "stdafx.h"
      #include "DBufferListCtrl.h"
      
      
      DBufferListCtrl::DBufferListCtrl(void)
      {
      }
      
      
      DBufferListCtrl::~DBufferListCtrl(void)
      {
      }
      BEGIN_MESSAGE_MAP(DBufferListCtrl, CListCtrl)
          ON_WM_PAINT()
          ON_WM_ERASEBKGND()
      END_MESSAGE_MAP()
      
      
      void DBufferListCtrl::OnPaint()
      {
      
          CPaintDC dc(this); // device context for painting
          CRect rect;
          CRect headerRect;
          CDC MenDC;        
          CBitmap MemMap;
      
          GetClientRect(&rect);    
          GetDlgItem(0)->GetWindowRect(&headerRect);   
          MenDC.CreateCompatibleDC(&dc);   
          MemMap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height()); 
          MenDC.SelectObject(&MemMap);
          MenDC.FillSolidRect(&rect,RGB(255,255,255));   
      
          DefWindowProc(WM_PAINT,(WPARAM)MenDC.m_hDC,(LPARAM)0);   
      
          dc.BitBlt(0,
              headerRect.Height(),   
              rect.Width(),   
              rect.Height(),   
              &MenDC,   
              0,     
              headerRect.Height(),   
              SRCCOPY);   
      
          MenDC.DeleteDC();
          MemMap.DeleteObject();
      }
      
      
      BOOL DBufferListCtrl::OnEraseBkgnd(CDC* pDC)
      {
          // TODO: Add your message handler code here and/or call default
      
          //return CListCtrl::OnEraseBkgnd(pDC);
          return FALSE;
      }
      
      
      CString DBufferListCtrl::GetItemText(int nItem, int nSubItem) const
      {
          ASSERT(::IsWindow(m_hWnd));
          LVITEM lvi;
          memset(&lvi, 0, sizeof(LVITEM));
          lvi.iSubItem = nSubItem;
      
          CString str;
          int nLen = 512;
          int nRes;
      
          do
          {
              nLen *= 2;
              lvi.cchTextMax = nLen;
              lvi.pszText = str.GetBufferSetLength(nLen);
              nRes  = (int)::SendMessage(m_hWnd, LVM_GETITEMTEXT, (WPARAM)nItem,
                  (LPARAM)&lvi);
          } while (nRes >= nLen-1);
      
          str.ReleaseBuffer();
          return str;
      }
      
      void DBufferListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
      {
          CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
          CRect rcItem(lpDrawItemStruct->rcItem);
          int nItem = lpDrawItemStruct->itemID;
          COLORREF clrTextSave, clrBkSave;
          static _TCHAR szBuff[1024];
      
          LV_ITEM lvi;
          lvi.mask = LVIF_TEXT | LVIF_STATE;//LVIF_IMAGE |
          lvi.iItem = nItem;
          lvi.iSubItem = 0;
          lvi.pszText = szBuff;
          lvi.cchTextMax = sizeof(szBuff);
          lvi.stateMask = 0xFFFF;
          GetItem(&lvi);
      
          BOOL bSelected = (lvi.state & LVIS_SELECTED);
          CRect rcAllLabels;
          GetItemRect(nItem, rcAllLabels, LVIR_BOUNDS);
      
          if (bSelected)
          {
              clrTextSave = pDC->SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
              clrBkSave = pDC->SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
              pDC->FillRect(rcAllLabels, &CBrush(::GetSysColor(COLOR_HIGHLIGHT)));
          }
      
          GetItemRect(nItem, rcItem, LVIR_LABEL);
          pDC->DrawText(szBuff, -1, rcItem, DT_LEFT | DT_SINGLELINE | DT_NOPREFIX | DT_NOCLIP | DT_VCENTER);
      
          LV_COLUMN lvc;
          lvc.mask = LVCF_FMT | LVCF_WIDTH;
          for (int nColumn = 1; GetColumn(nColumn, &lvc); nColumn++)
          {
              rcItem.left = rcItem.right;
              rcItem.right += lvc.cx;
      
              int nRetLen = CListCtrl::GetItemText(nItem, nColumn,
                  szBuff, sizeof(szBuff));
              if (nRetLen == 0)
                  continue;
              UINT nJustify = DT_LEFT;
              switch (lvc.fmt & LVCFMT_JUSTIFYMASK)
              {
              case LVCFMT_RIGHT:
                  nJustify = DT_RIGHT;
                  break;
              case LVCFMT_CENTER:
                  nJustify = DT_CENTER;
                  break;
              default:
                  break;
              }
      
              pDC->DrawText(szBuff, -1, rcItem,
                  nJustify | DT_SINGLELINE | DT_NOPREFIX | DT_NOCLIP | DT_VCENTER);
          }
          if (lvi.state & LVIS_FOCUSED)
              pDC->DrawFocusRect(rcAllLabels);
      
          if (bSelected)
          {
              pDC->SetTextColor(clrTextSave);
              pDC->SetBkColor(clrBkSave);
          }
      }

       

      posted @ 2020-09-22 15:44  mymeng_feng  閱讀(176)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品青草久久久久福利99| 在线观看成人av天堂不卡 | 免费人成视频网站在线18| 国产偷国产偷亚洲清高动态图| 国产午夜视频在线观看| 在线成人国产天堂精品av| 国产亚洲精品久久久久久大师| 国产精品免费看久久久| 国内精品视这里只有精品| jizzjizz少妇亚洲水多| 日日躁夜夜躁狠狠久久av| 亚洲码国产精品高潮在线| 亚洲精品一二三区在线看| 中文字幕无码不卡在线| 强奷乱码中文字幕| 久久亚洲精品中文字幕馆| 国产一区二区三区高清在线观看| 任我爽精品视频在线播放| 在线精品国产中文字幕| 久久婷婷五月综合色和啪| 91亚洲国产成人精品性色| 亚洲乱理伦片在线观看中字| 免费观看又色又爽又黄的崩锅| 极品少妇xxxx| 天堂亚洲免费视频| 日韩人妻av一区二区三区| 色老头亚洲成人免费影院| 午夜通通国产精品福利| 亚洲av午夜福利大精品| 亚洲丰满熟女一区二区v| 精品熟女日韩中文十区| 亚洲精品一区二区三区综合 | 国产精品 无码专区| 亚洲精品宾馆在线精品酒店| 亚洲午夜无码av毛片久久| 日韩熟女精品一区二区三区| 国产精成人品日日拍夜夜| 思南县| 久久精品一区二区东京热| 欧美中文字幕无线码视频| 日本高清在线观看WWW色|