<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    ListCtrl控件著色

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    最近在寫一款山寨的反病毒軟件,大致功能已經實現,還有一些細小的環節需要細化。

    其中,在界面編程中,就用到了給ListCtrl控件著色,查看了網上一些文章,終于實現了。

    其實說白了,原理很簡單,就是ListCtrl在插入一個Item的時候,會發送一個NM_CUSTOMDRAW的消息,我們只要實現這個消息響應函數,并在里面繪制我們的顏色就可以了。

    但是響應這個消息在VC6.0下需要自己實現:

    1.在頭文件中聲明函數:afx_msg void OnCustomdrawMyList( NMHDR* pNMHDR, LRESULT* pResult ); 

    2.在cpp文件中添加消息映射:ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST, OnCustomdrawMyList)

    3.函數的實現:

    void CXXX::OnCustomdrawMyList( NMHDR* pNMHDR, LRESULT* pResult )
    {
     NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
     
        // Take the default processing unless we set this to something else below.
        *pResult = 0;
     
        // First thing - check the draw stage. If it's the control's prepaint
        // stage, then tell Windows we want messages for every item.
        if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
     {
            *pResult = CDRF_NOTIFYITEMDRAW;
     }
     
     // This is the notification message for an item. We'll request
     // notifications before each subitem's prepaint stage.
     else if ( pLVCD->nmcd.dwDrawStage==CDDS_ITEMPREPAINT )
     {
      COLORREF m_clrText;
      int   nItem = static_cast<int> (pLVCD->nmcd.dwItemSpec);
      
      // 根據文本內容判斷使ListCtrl不同顏色現實的條件
      CString str = m_list.GetItemText(nItem ,0);
      if (str == "0")
      {
       m_clrText = RGB(12,26,234);
      }
      else if (str == "1")
      {
       m_clrText = RGB(0,0,0);
      }
      else
      {
       m_clrText = RGB(255, 0, 0);
      }
      pLVCD->clrText = m_clrText;
      *pResult = CDRF_DODEFAULT;
     }
    }

    ListCtrl控件著色 - Fly - 從C開始          RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全