📄 20000727005.htm
字号:
<HTML>
<HEAD>
<TITLE>属性表标签上的位图在MFC,C++BUILDER下的实现</TITLE>
<META content="MSHTML 5.00.2314.1000" name=GENERATOR>
</HEAD>
<BODY aLink=#FF0000 bgColor=#ffffff leftMargin=0 link=#187800 topMargin=0
vLink=#990099>
<div align="center">
<table width="744" border="0" cellspacing="0" cellpadding="0" height="76">
<tr>
<td>
<p align="center"><font size="3"><b><br>
<br>
属性表标签上的位图在MFC,C++BUILDER下的实现</b></font></p>
<p align="left"><font color="#000000">属性表标签(tab control)支持在每一个item上放Image
图片。在mfc下实现相当简单,可分为以下几步:<br>
<br>
step1: create a bitmap resource with the images<br>
<br>
you can
also use icons or even create the images at run time.<br>
the size
of the images should be in proportion to the height<br>
of the
label.<br>
step2: add member variable of type Cimagelist<br>
<br>
protected:<br>
CImagelist m_imagetab;<br>
</font> <font color="#000000"><br>
step3: Override OnInitDialog() and add code
to it<br>
<br>
bool
CmyPropSheet::OnInitDialog()<br>
{<br>
bool bresult=CProperttySheet::OnInitDialog();<br>
m_imagetab.create(IDB_TABIMAGES,13,1,RGB(255,255,255));<br>
CTabCtrl *pTab=GetTabControl();<br>
pTab->SetImageList(&m_imagetab);<br>
<br>
tc_item tcitem;<br>
tcitem.mask=tcif_image;<br>
<br>
for(int i=0;i<3;i++)<br>
{ <br>
tcitem.iimage=i;</font></p>
<p align="left"><font color="#000000">
pTab->SetItem(i,&tcitem);<br>
}<br>
return bresult;<br>
}<br>
<br>
C++Builder 没有提供 SetImageList,SetItem这样的函数,但我们可以直接处理WINDOWS API 消息:TCM_SETIMAGELIST,TCM_SETITEM.
看下面的代码可以体会不同的编程风格。<br>
<br>
void __fastcall TForm1::FormPaint(TObject *Sender)<br>
{<br>
<br>
<br>
TabControl1->Perform ( TCM_SETIMAGELIST, 0, ImageList1->Handle
);<br>
<br>
TCITEM tcitem;<br>
tcitem.mask=TCIF_IMAGE ;<br>
for(int i=0;i<3;i++)<br>
{<br>
tcitem.iImage=i;<br>
TabControl1->Perform ( TCM_SETITEM,
i,(LPARAM) (LPTCITEM) &tcitem );<br>
<br>
}<br>
<br>
}</font></p>
<p align="left"></p>
</td>
</tr>
</table>
</div>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -