| ²é¿´: 108 | »Ø¸´: 0 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
zsgllyľ³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
¡¾·¢ÏÂ06Äê±¾°æµÚÒ»Ìù¡¿ÔÚ״̬À¸´´½¨ºÏÊʵÄÁбí¿ò
|
||
|
ÔÚ״̬À¸´´½¨ºÏÊʵÄÁбí¿ò Õâ¶Î´úÂë¿ÉÒÔÔÚ״̬ÐÐÖеÄÈÎÒâµØ·½½¨Á¢Ò»¸öÁбí¿ò 1.´ÓView²Ëµ¥ÖÐÑ¡ÔñResource Symbols,¼ÓÈëÒ»¸öеÄID(ÔÚ±¾ÀýÖмÙÉèΪ IDC_LIST),ÈüÆËã»úΪ¸ÃID¸³ÖµÒ²ÐíÊǽϺõÄÑ¡Ôñ. 2. ÔÚMainFrm.cppÖÐѰÕÒindicatorsÊý×é,È»ºóÔÚ¸ÃÊý×éÖмÓÈëÉÏÃæÐÂÔö¼ÓµÄID, Ç뽫Ëü·ÅÔÚÆäËüIDµÄºóÃæ,Õ⽫ʹÒÔºóµÄÁбí¿ò³öÏÖÔÚ״̬ÐеÄ×îÓÒ±ß,Èç¹ûÄã ²»Ïë ÈÃÁбí¿ò³öÏÖÔÚ×îÓÒ±ß,ÄãÒ²¿ÉÒÔ½«ID·ÅÖÃÔÚÆäËüÄãÏë³öÏֵĵط½ .ÔÚ±¾Àý×ÓÖÐÈçÏ£º static UINT indicators[] = { ID_SEPARATOR, // status line indicator IDC_LIST file://×Ô¼º¶¨ÒåµÄÄǶÎÇøÓò£¬±¾Àý×ÓÖÐÓÃÓÚ´æ·ÅListCtrl¿Ø¼þ }; 3. ´ò¿ª×ÊÔ´ÎļþÖеÄ×Ö·û´®±í,È»ºó²åÈëÒ»¸öÐÂ×Ö·û´®.Äã¿ÉÒÔͨ¹ýInsert²Ëµ¥ À´¼ÓÈëÒ»¸öÐÂ×Ö·û±í,»òÕßÔÚ×Ö·û´®±íÉϵ¥»÷ÓÒ¼üÒ²¿ÉÒÔÍê³É¸Ã¹¤×÷. ±¾Àý×ÓÖÐΪ¿Õ×Ö·û¡£ 4. ¸Ã×Ö·û´®µÄ×Ö·ûΪÐÂÔöµÄID,ºóÃæµÄÏûÏ¢,Çë¼ÓÈëÊʵ±µÄ¿Õ¸ñ.(¼ÓÈëµÄ¿Õ¸ñ ÖÁÉÙÒª±È½¨Á¢µÄÁбí¿òÒª´ó) ÏÖÔÚÎÒÃÇÒѾ½¨Á¢ÁËÒ»¸ö¿ÕµÄ³¤·½ÐÎ,½ÓÏÂÀ´ÎÒÃÇÒªÔÚÕâÀïÃæ·ÅÈëÒ»¸öÁбí¿ò. 1. ÔÚMainFrm.hÖÐÉùÃ÷Ò»¸ö¹«¹²±äÁ¿CListCtrl m_list; 2. ÔÚMainFrm.hÖÐÉùÃ÷Ò»¸ö±£»¤±äÁ¿ BOOL m_bListCreate£» ÔÚ 3. ÔÚMainFrm.cppÖÐÖà CMainFrame::CMainFrame() { m_bListCreate=FALSE; } 4.ÔÚMainFrm.hÉùÃ÷ void SetList(void); º¯Êý£¬¸Ãº¯ÊýÓÃÓÚ³õʼ»¯Áбí¿ò ÔÚMainFrm.cppÖÐʵÏÖSetList£¨£©º¯Êý£¬¾ßÌåÈçÏ£º void CMainFrame::SetList(void) { file://create the listview RECT MyRect; // substitute 4 with the zero-based index of your status bar pane. // For example, if you put your pane first in the indicators array, // you? put 0, second you? put 1, etc. m_wndStatusBar.GetItemRect(1, &MyRect); if(m_bListCreate==FALSE) { LV_COLUMN lvc; lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT; lvc.fmt=LVCFMT_CENTER; AfxMessageBox("ok" ; m_list.Create(WS_CHILD|WS_VISIBLE|LVS_ALIGNLEFT|LVS_REPORT|WS_BORDER ,MyRect, &m_wndStatusBar, 1); m_list.SetBkColor(::GetSysColor(COLOR_INFOBK)); m_list.SetTextBkColor(::GetSysColor(COLOR_3DFACE)); lvc.iSubItem = 0; lvc.pszText = _T("Am µãµ½" ; lvc.cx = 60; if(m_list.InsertColumn(1,&lvc)==0) AfxMessageBox("false" ; lvc.iSubItem = 1; lvc.pszText = _T("Îç·¹" ; lvc.cx = 60; m_list.InsertColumn(2,&lvc); file://AfxMessageBox("ok" ; m_bListCreate=TRUE; } else AfxMessageBox("has been created!" ; } Õâ¸öº¯Êý¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÀ´ÊµÏÖ¡£ 5. ÔÚ±¾Àý×ÓÀïÁбí¿òÔÚ³ÌÐò³õʼ»¯µÄͬʱҲ±»³õʼ»¯£¬ËùÒÔ½«Áбí¿òµÄ³õʼ´úÂë ·ÅÔÚÖ÷¿ò¼Ü³õʼÉú³ÉµÄOnCreate()º¯ÊýÖС£¾ßÌåÈçÏ£º int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n" ; return -1; // fail to create } if (!m_wndStatusBar.CreateEx(this,SBARS_SIZEGRIP) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n" ; return -1; // fail to create } m_wndStatusBar.GetStatusBarCtrl().SetMinHeight(40);//¸ÃÓï¾äÓÃÓÚÉèÖÃ״̬À¸µÄ¸ß¶È¡£ SetList();//ÓÃÓÚÁбí¿òµÄ³õʼ»¯£¬½«Áбí¿ò·ÅÖÃÔÚ״̬À¸µÄºÏÊÊλÖᣠ// TODO: Delete these three lines if you don't want the toolbar to // be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); return 0; } 6¡£Èç¹û´°¿ÚÔÚ½¨Á¢Áбí¿òÖ®ºó,¸Ä±äÁË´óС,ÄÇôÁбí¿ò²¢²»»á±»ÖØÐµ÷ÕûλÖÃ,Ëù ÒÔ ÎÒÃDZØÐëÔÚWM_SIZEʼþÖмÓÈë×Ô¼ºµÄ´úÂëÀ´µ÷Õû¸ÃÁбí¿òµÄλÖÃ: void CMainFrame::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nType, cx, cy); if(m_bListCreate==TRUE) { RECT rc; m_wndStatusBar.GetItemRect(1, &rc); // Reposition the progress control correctly! m_list.SetWindowPos(&wndTop, rc.left, rc.top, rc.right - rc.left,rc.bottom - rc.top, 0); } } [ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-27 at 08:16 ] |
» ²ÂÄãϲ»¶
340Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
²ÄÁÏר˶ÕÒµ÷¼Á
ÒѾÓÐ4È˻ظ´
0854µç×ÓÐÅÏ¢Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
0805 316Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
0854 ¿¼Ñе÷¼Á ÕÐÉúÁË£¡AI ·½Ïò
ÒѾÓÐ17È˻ظ´
¡¾¿¼Ñе÷¼Á¡¿»¯Ñ§×¨Òµ 281·Ö£¬Ò»Ö¾Ô¸ËÄ´¨´óѧ£¬³ÏÐÄÇóµ÷¼Á
ÒѾÓÐ15È˻ظ´
×ÊÔ´Óë»·¾³ µ÷¼ÁÉêÇë(333·Ö)
ÒѾÓÐ7È˻ظ´
306Çó0703µ÷¼ÁÒ»Ö¾Ô¸»ªÖÐʦ·¶
ÒѾÓÐ11È˻ظ´
0703»¯Ñ§µ÷¼Á£¬Çóµ¼Ê¦ÊÕ
ÒѾÓÐ6È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´














;
»Ø¸´´ËÂ¥