属性表标签上的位图在MFC、CB下的实现
当前位置:以往代写 > C/C++ 教程 >属性表标签上的位图在MFC、CB下的实现
2019-06-13

属性表标签上的位图在MFC、CB下的实现

属性表标签上的位图在MFC、CB下的实现

属性表标签(tab control)支持在每一个item上放Image 图片。在mfc下实现相当简朴,可分为以下几步:

step1: create a bitmap resource with the images

  you can also use icons or even create the images at run time.
  the size of the images should be in proportion to the height
  of the label.
   step2: add member variable of type Cimagelist

       protected:
            CImagelist m_imagetab;
   step3: Override OnInitDialog() and add code to it
       bool CmyPropSheet::OnInitDialog()
       {
         bool bresult=CProperttySheet::OnInitDialog();
         m_imagetab.create(IDB_TABIMAGES,13,1,RGB(255,255,255));
         CTabCtrl *pTab=GetTabControl();
         pTab->SetImageList(&m_imagetab);

         tc_item tcitem;
         tcitem.mask=tcif_image;

         for(int i=0;i<3;i++)
         {
           tcitem.iimage=i;
  pTab->SetItem(i,&tcitem);
         }
         return bresult;
        }

C++Builder 没有提供 SetImageList,SetItem这样的函数,但我们可以直接处理惩罚WINDOWS API 动静:TCM_SETIMAGELIST,TCM_SETITEM. 看下面的代码可以体会差异的编程气势气魄。

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

    关键字:

在线提交作业