包含clistview增加一行数据库的词条

网站建设 14
今天给各位分享clistview增加一行数据库的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!CListCtrl无法动态添加数据,即不能用setitemtext()添加 void Listview::OnStart(void){ setlist(); CListCtrl theCtrl=GetListCtrl();

今天给各位分享clistview增加一行数据库的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

CListCtrl无法动态添加数据,即不能用setitemtext()添加

void Listview::OnStart(void)

{ setlist();

CListCtrl theCtrl=GetListCtrl();

theCtrl.DeleteAllItems();

}

void Listview::setlist(void)

{

CListCtrl m_list=GetListCtrl();//在这里开始有问题,编译能通过,但是列表没有显示asdfasfa

m_list.InsertItem(0,_T("01"));

m_list.SetItemText(0,1,_T("asdfasfa"));

}

SetList函数里面有GetListCtrl,这个和OnStart函数里调用的GetListCtrl反回的是同一个ListCtrl对象的引用,虽然两个名字不一样,但是实际是代表的同一个对象。由于调用了SetList后,又调用了DeleteAllItem,把刚添加的项删除了,因此没有显示。我想你调用的GetListCtrl调用错了,你再检查下,要获取两个不同的ListCtrl怎么可能用同样的函数。。。

CListView的更新问题

在自定义的添加按钮函数的最后添加如下代码

CMainFrame * p=(CMainFrame*)AfxGetApp()-m_pMainWnd;

目的是得到指向主框架的指针。

接着添加代码:p-函数名; 函数名为在CMainFrame类中自定义的一个函数名,比如OnUpdate() ,那么刚才的那句代码就可以是p-OnUpdate();

而后在OnUpdate()函数中添加如下代码:

CMyView * p=(CMyView *)m_wndSplitter.GetPane(0,0);//得到指向基类为CListView类的CMyView的指针, m_wndSplitter.GetPane(0,0)返回的是静态分割后左边的窗体指针,就是列表窗体的指针

p-OnDisplay(); //此函数为在CMyView类中自定义的列表更新函数。

这样就实现了通过在右边的窗体点击自定义的添加按钮更新了左边的窗体

请教CListView的具体用法,有实例代码最好

CListView用在文档视图结构中。用APPWIZARD 生成一个单文档的程序,有一个向导页,选中VIEW 从CListView派生。

1 。设定样式

void CIHISSERVERView::OnInitialUpdate()

{

CListView::OnInitialUpdate();

CListCtrl m_list = GetListCtrl();

m_list.SetBkColor(RGB(242,251,255));

m_list.SetTextColor( RGB(12,26,234) );

m_list.InsertColumn(0 , "报警顺序号", LVCFMT_LEFT, 80, 0 );

m_list.InsertColumn(1 , "住宅编号", LVCFMT_LEFT, 80, 1 );

m_list.InsertColumn(2 , "所有者姓名", LVCFMT_LEFT, 80, 2 );

m_list.InsertColumn(3 , "手机号码", LVCFMT_LEFT, 100, 3 );

m_list.InsertColumn(4 , "住宅电话", LVCFMT_LEFT, 80, 4 );

m_list.InsertColumn(5 , "办公室电话", LVCFMT_LEFT, 80, 5 );

m_list.InsertColumn(6 , "使用者姓名", LVCFMT_LEFT, 80, 6 );

m_list.InsertColumn(7 , "手机号码", LVCFMT_LEFT, 100, 7 );

m_list.InsertColumn(8 , "住宅电话", LVCFMT_LEFT, 80, 8 );

m_list.InsertColumn(9 , "办公室电话", LVCFMT_LEFT, 80, 9);

m_list.InsertColumn(10, "主控器编号", LVCFMT_LEFT, 80, 10);

m_list.InsertColumn(11, "工作模式", LVCFMT_LEFT, 80, 11);

m_list.InsertColumn(12, "报警逻辑", LVCFMT_LEFT, 80, 12);

m_list.InsertColumn(13, "端口类型", LVCFMT_LEFT, 60, 13);

m_list.InsertColumn(14, "报警端口号", LVCFMT_LEFT, 80, 14);

m_list.InsertColumn(15, "报警路径", LVCFMT_LEFT, 140, 15);

m_list.InsertColumn(16, "报警时间", LVCFMT_LEFT, 160, 16);

m_list.ModifyStyle( LVS_TYPEMASK,LVS_REPORT | LVS_SINGLESEL );

m_list.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE );

}

2。鼠标右键单击ListView事件

// 鼠标右键单击事件,谈出控制菜单

void CIHISSERVERView::OnRclick(NMHDR* pNMHDR, LRESULT* pResult)

{

// TODO: Add your control notification handler code here

CListCtrl m_list = GetListCtrl();

int nItemIndex = -1;

if ( ( m_list.GetNextItem(-1, LVNI_SELECTED))!=-1)

{

while ( ( nItemIndex = m_list.GetNextItem ( nItemIndex, LVNI_SELECTED ) ) != -1 )

{

CMenu menu;

menu.LoadMenu(IDR_MENU2);

CPoint point ;

::GetCursorPos(point);

::SetForegroundWindow(m_hWnd);

menu.GetSubMenu(0)-TrackPopupMenu(TPM_LEFTALIGN ,

point.x,

point.y,

this,

NULL);

}

}

*pResult = 0;

}

3。在其他的类中向ListView插入数据

UINT CProcessAlarm:: dealwith( vector UCHAR arr )

{

SumInBreakPath.Empty();

SumInBreakPaths.Empty();

CMainFrame *m_mainframe = (CMainFrame*)AfxGetMainWnd();

CIHISSERVERView *pview = (CIHISSERVERView*)m_mainframe - GetActiveView();

CListCtrl m_list =pview - GetListCtrl();

。。。

m_list.SetTextColor(RGB(0,0,189));

m_list.SetTextBkColor(RGB(150,252,255));

m_list.InsertItem( ListCtrlIndex, AlarmNO );

m_list.SetItemText(ListCtrlIndex,1, (char*)HouseID );

if (OwnerName == "" )

m_list.SetItemText(ListCtrlIndex,2, "没有记录" );

else

m_list.SetItemText(ListCtrlIndex,2, OwnerName );

if ( OwnerMobilePhone == "" )

m_list.SetItemText(ListCtrlIndex,3, "没有记录" );

else

m_list.SetItemText(ListCtrlIndex,3, OwnerMobilePhone);

if (OwnerHomePhone == "")

m_list.SetItemText(ListCtrlIndex,4, "没有记录");

else

m_list.SetItemText(ListCtrlIndex,4, OwnerHomePhone);

if ( OwnerOfficePhone == "" )

m_list.SetItemText(ListCtrlIndex,5, "没有记录");

else

m_list.SetItemText(ListCtrlIndex,5, OwnerOfficePhone);

if ( ResidentName == "" )

m_list.SetItemText(ListCtrlIndex,6, "没有记录");

else

m_list.SetItemText(ListCtrlIndex,6, ResidentName );

if ( ResidentMobilePhone == "" )

m_list.SetItemText(ListCtrlIndex,7, "没有记录");

else

m_list.SetItemText(ListCtrlIndex,7, ResidentMobilePhone);

if ( ResidentHomePhone == "" )

m_list.SetItemText(ListCtrlIndex,8, "没有记录");

else

m_list.SetItemText(ListCtrlIndex,8, ResidentHomePhone);

if ( ResidentOfficePhone == "")

m_list.SetItemText(ListCtrlIndex,9, "没有记录");

else

m_list.SetItemText(ListCtrlIndex,9, ResidentOfficePhone);

m_list.SetItemText(ListCtrlIndex,10, ControllerID);

m_list.SetItemText(ListCtrlIndex,11, WorkModeName);

m_list.SetItemText(ListCtrlIndex,12, SumLogicName);

m_list.SetItemText(ListCtrlIndex,13, PortType);

m_list.SetItemText(ListCtrlIndex,14, AlarmPortNum);

m_list.SetItemText(ListCtrlIndex,15, inBreakPath);

m_list.SetItemText(ListCtrlIndex,16, Time);

// 使焦点始终在最后一行

int nCount = m_list.GetItemCount();

if (nCount 0)

{

m_list.EnsureVisible(nCount-1, FALSE);

m_list.SetItemState(nCount-1, LVIS_SELECTED, LVIS_SELECTED);

if ( nCount-1 0 )

{

m_list.SetItemState(nCount-1-1, 0, LVIS_SELECTED);

}

}

m_list.SetFocus();

。。。。

CScroll 类

是CScrollView类吧?这个是默认带滚动的,ADO只是一种连接数据库的方案,跟View 是什么类型的没有关系,当然也可以选别的类的,比如你选CListView作为基类,可以用GetListCtrl()得到ListView的指针然后利用ADO技术连接到数据库,从数据库中取得数据,然后一行一行的插入到列表中。

此外也可以选CEditView,这样View 就成了一个类似于记事本的东东,可以把用ADO技术读到的数据库中表的内容显示到屏幕上。

关于ADO,可以看看COM的相关资料。

但如果刚开始学VC,还是看看孙鑫的VC视频,先了解一下MFC框架的机制比较好。

c++mfc 单文档应用程序 左侧的tree点击 节点 右侧的listview添加一行如何做

你可以自定义消息啊。

你可以按照以下思路来做:

你的tree 和 listview 都是画在 Mainframe上的。

Mainframe中应该可以容易的获得 tree 和 listview的句柄

你可以把tree节点按下的消息发送到Mainframe,然后在Mainframe 中转发到 listview

当然这些都是自定义的。

如何用listcontrol控件显示数据库记录

很简单啊。主要用到InsertColumn,InsertItem,SetItemText这3个方法,在msdn中查下CListCtrl就很清楚了

关于clistview增加一行数据库和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

clistview增加一行数据库
扫码二维码