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

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毛片 | 欧美日韩国产在线观看 | jiz中国zz | 又爽又黄又无遮挡的视频在线观看 | 国产精品综合网 | 国产女人体一区二区三区 | 国产精品婷婷久久爽一下 | 精品免费久久久久久成人影院 | 欧美久久天天综合香蕉伊 | 四虎成人欧美精品在永久在线 | 亚洲夜色 | 欧美一级毛片免费看 | 青青操夜夜操 | 成人毛片在线播放 | 欧美日韩1区 | 久久久噜噜噜www成人网 | 久久99这里只有精品 | 日日摸夜夜摸人人嗷嗷叫 | 亚洲精品视频免费观看 | 日韩中文字幕久久精品 | 久久sese| 四虎hu | 亚洲成网站www久久九 | 性色黄 | 99久久精品毛片免费播放 | 国产亚洲精品九九久在线观看 | 欧美精品亚洲网站 | 在线看欧美三级中文经典 | 99在线观看免费视频 | 暴劫倾情无删减在线播放 | 久久美女精品 | 中国女人精69xxx | 精品一区二区在线欧美日韩 | 久操视频免费在线观看 | 四虎影视永久在线精品免费 | 国产丰满老厨女房乱 | 99热久久精里都是精品6 | 中国美女一级a毛片录像在线 | 亚洲欧美久久 | 爱综合网 |