Hello everyone,
I have created a list view(Declared in CDataDialog) with data . I want the list view to have as rows-cells as the conductors so I used :for (int i = 1; i<= m_DialogCon; i++) (m_DialogCon is the variable which representes the number of conductors but was declared in CFeaturesDialog). How could I use m_DialogCon variable in CDataDialog?
Here is the code:
void CDataDialog::InsertItems()
{
HWND hWnd = ::GetDlgItem(m_hWnd, IDC_LIST1);
LVCOLUMN list;
list.mask = LVCF_TEXT | LVCF_WIDTH |
LVCF_FMT | LVCF_SUBITEM;
list.fmt = LVCFMT_LEFT;
list.cx = 50;
list.pszText = L"Conductor";
list.iSubItem = 0;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)0, (WPARAM)&list);
list.cx = 100;
list.pszText = L"Resistivity";
list.iSubItem = 1;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)1, (WPARAM)&list);
list.cx = 100;
list.pszText = L"Permeability";
list.iSubItem = 2;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)2, (WPARAM)&list);
list.cx = 100;
list.pszText = L"Outer Diameter";
list.iSubItem = 3;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)3, (WPARAM)&list);
list.cx = 100;
list.pszText = L"Inner Diameter";
list.iSubItem = 4;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)4, (WPARAM)&list);
list.cx = 100;
list.pszText = L"Rdc";
list.iSubItem = 5;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)5, (WPARAM)&list);
list.cx = 100;
list.pszText = L"x component";
list.iSubItem = 6;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)6, (WPARAM)&list);
list.cx = 100;
list.pszText = L"y component";
list.iSubItem = 7;
::SendMessage(hWnd, LVM_INSERTCOLUMN,
(WPARAM)7, (WPARAM)&list);
for (int i = 1; i<= m_DialogCon; i++)
{
SetCell(hWnd, L"1", 0, 0);
SetCell(hWnd, L"0.0000386063", 0, 1);
SetCell(hWnd, L"1", 0, 2);
SetCell(hWnd, L"0.025146", 0, 3);
SetCell(hWnd, L"0.00971", 0, 4);
SetCell(hWnd, L"0.09136", 0, 5);
SetCell(hWnd, L"0", 0, 6);
SetCell(hWnd, L"15.24", 0, 7);
}
}
void CDataDialog::SetCell(HWND hWnd1,
CString value, int nRow, int nCol)
{
TCHAR szString[256];
wsprintf(szString, value, 0);
LVITEM lvItem;
lvItem.mask = LVIF_TEXT;
lvItem.iItem = nRow;
lvItem.pszText = szString;
lvItem.iSubItem = nCol;
if (nCol >0)
::SendMessage(hWnd1, LVM_SETITEM,
(WPARAM)0, (WPARAM)&lvItem);
else
ListView_InsertItem(hWnd1, &lvItem);
}
class CDataDialog : public CDialog
{
DECLARE_DYNAMIC(CDataDialog)
public:
CDataDialog(CWnd* pParent = NULL);
virtual ~CDataDialog();
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DIALOG2 };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedExit();
void InsertItems();
void SetCell(HWND hWnd1, CString value, int nRow, int nCol);
CString GetItemText(HWND hWnd, int nItem, int nSubItem) const;
afx_msg void OnClickList1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnOK();
BOOL OnInitDialog();
int nItem;
int nSubItem;
};
|