[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 430
  • Last Modified:

how to add CDialogTemplate to a CListview?

Hi,

how to add a CDilaogTempalte to a CListview.which contains buttons on top of CListctrl header.
that button action should perform some actioh in Clistctrl.
0
srikadi
Asked:
srikadi
  • 9
  • 7
1 Solution
 
AndyAinscowFreelance programmer / ConsultantCommented:
You could use a CFormView instead.
Put the buttons where you want and a list control onto the dialog in the resource editor
0
 
srikadiAuthor Commented:
thanx for ur reply..
i did same thing but its not working properly..the listctrl is taking values but not showing to user..i don't know what could be the problem..
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
How do you add values to the list control?  (Check it is in report mode - I assume you want columns of information).
0
[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

 
srikadiAuthor Commented:
ya..its in report mode..when i scan the node the values comes to the CListctrl..before it has worked fine..but when i placed on formview its not working..i know its taking values adding to the database but not showing in Clistctrl..
that y i asked some other alternate solution......
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
Please show your code for adding the info to the list control.
0
 
srikadiAuthor Commented:


BeginWaitCursor();
 CDatabase * commonDatabase = CTresManApp::GetDatabaseObject();
 ErrorRepository errorRep(commonDatabase);
 
 //get the filter (if any) from the network tree. If no filter is available, then
 //the whole NodeList table is considered when generating the task list table contents
// CString taskFilter = m_nwSplitter.GetNwTreeFilter();
 CString taskFilter = m_nwSplitter2.GetNwTreeFilter();
 //fill database with scan tasks
 TaskListDbHandler::Instance()->FillTaskListTable(taskFilter);
 CTresManApp * pApp = (CTresManApp *)AfxGetApp();
 ASSERT(pApp);
 
/**/CTaskFormView * pNwVList1 = (CTaskFormView *)m_nwSplitter2.GetPane(2,0);
 CTaskListView * pNwVList=(CTaskListView *)pNwVList1->GetTaskListView();
 ASSERT(pNwVList);

/* CDbView * tskvw = (CDbView *) pApp->GetView(CTresManStates::Views::TASKFORMVIEW);
 ASSERT(tskvw);
 //set the dirty flag for the recordset. Recordset will be requeryd. This one is for the TaskList view
 if (tskvw)
 {
  tskvw->SetRecordsetDirty();
 }*/
 if (pNwVList)
 {
  pNwVList->SetRecordsetDirty();
 }
 EndWaitCursor();
before the code was with CListview..now i changed to CFormview..
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
Where is the list control?
0
 
srikadiAuthor Commented:
CTaskListView is the Clistctrl  so..presently i am getting data to this CTaskListView .so i am calling this in CTaskFormView  which is CFormview class.
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
Is pNwVList non NULL ?
Are you getting any records back from the database ?


What is the code in SetRecordsetDirty ?
0
 
srikadiAuthor Commented:
yes..iam getting records..
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
You have still not posted the code that is for adding the items to the list control.

Please confirm that CTaskListView is based on the CListCtrl class.
0
 
srikadiAuthor Commented:
yes,CTaskListView is based on the CListCtrl class.
0
 
srikadiAuthor Commented:
sorry,CTaskListView is based on the CListView  class
0
 
srikadiAuthor Commented:

 if (!m_dSource.IsOpen())
  {
   return;
  }
  //if the recordset is empty, we display a notification label for the user
  if (pItem->iItem == 0 && m_dSource.GetRecordCount() == 0)
  {
   if (pItem->iSubItem == m_firstVisibleColumn )
   {
    RemoveSelection();
    pItem->pszText = (LPTSTR)(LPCTSTR)m_emptyString;
   }
   return;
  }
  // called when the listview needs to display data
  if(pItem->mask & LVIF_TEXT)
  {
   // first, move to the appropriate row in the database
   CString itemText, itemTextTrunc;
   if( m_dSource.PositionCursor(pItem->iItem) &&
    (m_dSource.GetValueByColName(m_columnHeaders.GetViewFieldName((short)pItem->iSubItem), itemText) ))
   {
    //if there is an index column, it is used for indexing the displayed items
    //this is used only for the first column item because there's no reason to duplicate
    //the information
    //Truncate string if necessary.
    if (itemText.GetLength() > pItem->cchTextMax)
    {
     CString itemTextTrunc;
     itemTextTrunc.LoadString(IDS_STRING_TO_LONG);
     int nTrunc = itemTextTrunc.GetLength() + 1;
     itemText = itemText.Left(pItem->cchTextMax - nTrunc) + itemTextTrunc;
    }
 
    lstrcpy(pItem->pszText, (LPCTSTR)itemText );
   }
   else
   {
    m_isRecordSetDirty = TRUE;
   }
   if (m_isRecordSetDirty)
   {
    SetRecordsetDirty();
    m_isRecordSetDirty = FALSE;
   }
  }
0
 
AndyAinscowFreelance programmer / ConsultantCommented:
Well, you add controls to a resource dialog - so you need to link the control on the dialog to a member variable.
Select the control in resource editor, select add variable and add a CONTROL variable of type CListCtrl.

Now give your code another try.
0
 
srikadiAuthor Commented:
sorry,i didn't get u..i don't have any resource dialog for Clistctrl..
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

  • 9
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now