亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Contribute some useful custom control: XList

系統 2263 0
In my VC MFC develop expericence, I always find that it is really poor of the Ctrls that microsoft provided, but we have no much project budget to bug a beautiful third-ctrl. So sometimes we need do some work to modify the standard Control. For the purpose of reuse, I have my library database, though lots of them come from internet, and I just did little work. but I still very pleasure to share with your guys. Click here to download.
?

At first, I want introduce XListCtrl to you.
This control was developed by Hans Dietrich , you can click here to view his web page. You can find this beautiful and powerful feature list, before that, let's have a look this beautiful picture:

  1. First column is specified with checkboxes
  2. The second column shows subitem with bold text
  3. The second column shows subitem with different background color
  4. The third column contains progress bar in row 2
  5. The fourth column also contains checkboxes
  6. The fifth column shows subitem with different background color
  7. The sixth column shows subitem with different text and background colors
  8. The second column shows combobox
  9. The sixth row is disabled
  10. The fifth column shows edit control
What I do?
At first, Let me show picture.


Keep all features from hans' xlistctrl.
1, Modify the edit feature, add OK, Cancel button, It will be more friendly to user.
2, Add change the font's style: italic

How to Use:
  • Initial List:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> CRect?rect;
????xlist.GetWindowRect(
& rect);

????
int ?w? = ?rect.Width()? - ? 2 ;
????
int ?colwidths[ 6 ]? = ?{? 3 ,? 26 ,? 8 ,? 19 ,? 6 ,? 15 ?};???? // ?sixty-fourths
???? int ?cols? = ? 0 ;
????TCHAR?
* ????lpszHeaders[]? = ?{?_T( "" ),
??????????????????????????????_T(
" File?Name " ),
??????????????????????????????_T(
" Speed(kb/s) " ),
??????????????????????????????_T(
" Progress " ),
??????????????????????????????_T(
" Time?Left " ),
??????????????????????????????NULL?};
????
int ?i;
????
int ?total_cx? = ? 0 ;
????LV_COLUMN?lvcolumn;
????memset(
& lvcolumn,? 0 ,? sizeof (lvcolumn));

????
// ?add?columns
???? for ?(i? = ? 0 ;?;?i ++ )
????{
????????
if ?(lpszHeaders[i]? == ?NULL)
????????????
break ;

????????lvcolumn.mask?
= ?LVCF_FMT? | ?LVCF_SUBITEM? | ?LVCF_TEXT? | ?LVCF_WIDTH;
????????lvcolumn.fmt?
= ?(i? == ? 1 ? || ?i? == ? 5 )? ? ?LVCFMT_LEFT?:?LVCFMT_CENTER;
????????lvcolumn.pszText?
= ?lpszHeaders[i];
????????lvcolumn.iSubItem?
= ?i;
????????lvcolumn.cx?
= ?(lpszHeaders[i + 1 ]? == ?NULL)? ? ?w? - ?total_cx? - ? 2 ?:?(w? * ?colwidths[i])? / ? 64 ;
????????total_cx?
+= ?lvcolumn.cx;
????????xlist.InsertColumn(i,?
& lvcolumn);
????}
????cols?
= ?i;? // total?columns
????
????
// ?iterate?through?header?items?and?attach?the?image?list
????HDITEM?hditem;

????
for ?(i? = ? 0 ;?i? < ?xlist.m_HeaderCtrl.GetItemCount();?i ++ )
????{
????????hditem.mask?
= ?HDI_IMAGE? | ?HDI_FORMAT;
????????xlist.m_HeaderCtrl.GetItem(i,?
& hditem);
????????hditem.fmt?
|= ??HDF_IMAGE;
????????
if ?(i? == ? 0 )?
????????{
????????????hditem.iImage?
= ?XHEADERCTRL_UNCHECKED_IMAGE;
????????????hditem.fmt?
= ?HDF_CENTER;
????????}
????????
else
????????????hditem.iImage?
= ?XHEADERCTRL_NO_IMAGE;

????????xlist.m_HeaderCtrl.SetItem(i,?
& hditem);
????}
??? // add edit button picture
????HBITMAP?hBitmapOK?
= ?LoadBitmap(AfxGetInstanceHandle(),??MAKEINTRESOURCE(IDB_EDIT_BTNOK));??
????HBITMAP?hBitmapCancel?
= ?LoadBitmap(AfxGetInstanceHandle(),??MAKEINTRESOURCE(IDB_EDIT_BTNCANCEL));??
????m_xlist.SetEditBtnIcon(hBitmapOK,?hBitmapCancel);
  • Add a new line:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> ??? ??? ??? LVITEM?itemData;
????????????itemData.iSubItem?
= ? 0 ;
????????????itemData.iItem?
= ? 0 ;
????????????itemData.mask?
= ?LVIF_TEXT;
????????????itemData.pszText?
= ?_T( "" );
????????????itemData.lParam?
= ?(LPARAM)pJob;
????????????CString?szTmp;
????????????nItem?
= ?m_xlist.InsertItem( & itemData);
????????????m_xlist.SetCheckbox(?nItem,?
0 ,?FALSE?);
????????????m_xlist.SetItemText(?nItem,?
1 ,?pJob -> m_szNewDocName.GetLength()? == ? 0 ? ? ?pJob -> m_szFileName?:?pJob -> m_szNewDocName);???????? // doc?name
????????????m_xlist.SetEditButton(?nItem,? 1 );
????????????m_xlist.SetItemText(?nItem,?
3 ,?_T( "" ));???????????????????? // progress?bar
????????????pJob -> GetLeftTimeString(szTmp);
????????????m_xlist.SetItemText(?nItem,?
4 ,?szTmp?);???????????????????? // time?left?estimate
????????????szTmp.Format(? " %.2lf " ,?pJob -> CountSpeed() / 1024 ?);?
????????????m_xlist.SetItemText(?nItem,?
2 ,?szTmp?);???????????????????? // transfer?speed?average

  • Edit:

??? ON_REGISTERED_MESSAGE(WM_XLISTCTRL_EDIT_BTNOK_CLICKED,?OnRenameClicked)
????ON_REGISTERED_MESSAGE(WM_XLISTCTRL_EDIT_BTNEDIT_CLICKED,?OnRenameEditClicked)
??? ON_REGISTERED_MESSAGE(WM_XLISTCTRL_HEADER_CHECKBOX_CLICKED, OnHeaderChecked)
Implement these message function.

That' OK.

Contribute some useful custom control: XListCtrl


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩a一级欧美一级 | 免费精品国产自产拍观看 | 色涩在线 | 美女18毛片免费视频 | 青草久久久 | 亚洲国产精品一区二区九九 | 欧美日韩视频在线第一区 | 91精东果冻蜜桃星空麻豆 | 天天操天天干天搞天天射 | 伊人久久大香线焦综合四虎 | 亚洲二三区 | 久久一精品 | 日本a∨在线 | 国产精品亚洲精品一区二区三区 | 老司机午夜视频在线观看 | 久久精品视频1 | 免费夜色污私人影院网站 | 日本边添边爱边做视频 | 国产麻豆精品高清在线播放 | 尤物免费视频 | 特一级男女性色大片 | 91中文字幕在线观看 | 久青草国产在线 | 99亚洲精品高清一二区 | 在线看亚洲| 久草在线国产 | 午夜毛毛片 | 亚洲综合婷婷 | 日本成人不卡 | 4hu四虎永久网址 | 欧美成人免费高清网站 | 福利国产 | 精品国产系列 | 亚洲一级毛片免费在线观看 | 韩日视频在线观看 | 中文字幕视频一区 | 国产成人免费手机在线观看视频 | 欧美一级二级aaa免费视频 | 成年女人色毛片 | 国产欧美日韩精品a在线观看高清 | xxxxx日本59|