首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

MFC 與 C++ Builder 實現 Tab Control 標籤圖示:CImageList vs TCM_SETIMAGELIST

     編輯:VC 教學

MFC 實作步驟

  1. 建立位圖資源(圖示大小與標籤高度成比例)
  2. 新增 CImageList m_imagetab; 成員
  3. 覆寫 OnInitDialog:
BOOL CMyPropSheet::OnInitDialog() {
    BOOL b = CPropertySheet::OnInitDialog();
    m_imagetab.Create(IDB_TABIMAGES, 13, 1, RGB(255,255,255));
    CTabCtrl *pTab = GetTabControl();
    pTab->SetImageList(&m_imagetab);
    TC_ITEM item; item.mask = TCIF_IMAGE;
    for (int i=0; i<3; ++i) { item.iImage = i; pTab->SetItem(i, &item); }
    return b;
}

C++ Builder 實作

無 SetImageList/SetItem 封裝,直接發送 Windows 訊息:

void __fastcall TForm1::FormPaint(TObject *Sender) {
    TabControl1->Perform(TCM_SETIMAGELIST, 0, ImageList1->Handle);
    TCITEM item; item.mask = TCIF_IMAGE;
    for (int i=0; i<3; ++i) {
        item.iImage = i;
        TabControl1->Perform(TCM_SETITEM, i, (LPARAM)(LPTCITEM)&item);
    }
}

兩種風格對比:MFC 封裝類別 vs BCB 直接訊息傳遞,功能等效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved