clistctrl 双击怎么样获得行号,列号
来源:互联网 发布:h5仿淘宝上拉查看详情 编辑:程序博客网 时间:2024/05/01 01:19
这个问题第1个回答:
响应NM_DBLCLK消息,NMITEMACTIVATE结构中的iItem、iSubItem就是行、列号。
这个问题第2个回答:
添加NM_DBLCLK消息响应
这个问题第3个回答:
int Row=m_list.GetSelectionMark(); //这样可以获取你点击的那一行
这个问题第4个回答:
已经添加了双击函数,双击后窗口也弹出了,求后面代码,在线等
这个问题第5个回答:
LPNMLISTVIEW pNMLV = reinterpret_cast <LPNMLISTVIEW>(pNMHDR);
pNMLV->iItem //行号
pNMLV->iSubItem //列号
这个问题第6个回答:
在弹出对话框如果你是用编辑框作为输入次数的话,为编辑框添加EN_CHANGE消息响应
如:
void CAnalogy::OnChangeEdit5()
{
CString str;
GetDlgItem(IDC_EDIT1)->SetWindowText(str);
CDlgList *p=(CDlgList *)GetParent(); //获得Listctrl控件所在对话框的指针
int Row=p->m_list.GetSelectionMark(); //这样可以获取你点击的那一行
p->m_list.SetItemText(Row,2);
}
这个问题第7个回答:
int Row=m_list.GetSelectionMark();
m_list.SetItemText(Row,1,"你的次数放这"); //BOOL SetItemText(int nItem, int nSubItem, LPCTSTR lpszText);
这个问题第8个回答:
更正:
p->m_list.SetItemText(Row,2,str);
这个问题第9个回答:
打球去了刚才,不好意思。 cdlglist是什么东西啊,系统提示不正确
这个问题第10个回答:
cdlglist 就是你CListCtrl控件所在的对话框的类,
上面函数体你也可以在点击OK按钮时处理
还有就是不要忘记添加cdlglist 类的头文件
这个问题第11个回答:
加了EN_CHANGE输入一个数字整个程序就关了,怎么回事啊
而且这段代码加到按钮的消息响应函数里也不起作用阿
这个问题第12个回答:
我刚才也是照你说的弄得,就是上面这种状况
这个问题第13个回答:
假设你编辑框所在的对话框类是CDlgA
那你可以在双击函数中处理看看
#include "DlgA.h"
CDlgA dlg;
if(dlg.DoModal()==IDOK)
{
CString str;
GetDlgItem(IDC_EDIT1)->SetWindowText(str);
CDlgList *p=(CDlgList *)GetParent(); //获得Listctrl控件所在对话框的指针
int Row=p->m_list.GetSelectionMark(); //这样可以获取你点击的那一行
p->m_list.SetItemText(Row,2,str);
}
这个问题第14个回答:
sorry
假设你编辑框所在的对话框类是CDlgA
那你可以在双击函数中处理看看
#include "DlgA.h"
CDlgA dlg;
if(dlg.DoModal()==IDOK)
{
CString str;
GetDlgItem(IDC_EDIT1)->SetWindowText(str);
int Row=m_list.GetSelectionMark(); //这样可以获取你点击的那一行
m_list.SetItemText(Row,2,str);
}
这个问题第15个回答:
#include "CDD.h" //CDD 就是你CListCtrl控件所在的对话框的类,
以下是在编辑框所在对话框的“确定”按钮中处理函数体
void CDlgA::OnOK() //CDlgA为编辑框所在对话框的类
{
// TODO: Add extra validation here
CString str;
CDD *p=(CDD *)GetParent();
GetDlgItem(IDC_EDIT1)->GetWindowText(str);
int Row=p->m_statuslist.GetSelectionMark(); //这样可以获取你点击的那一行
p->m_statuslist.SetItemText(Row,2,str);
CDialog::OnOK();
}
我刚给你这样做了,测试通过
我试了一下上面我给的代码,GetDlgItem(IDC_EDIT1)->SetWindowText(str); 这句话不能取得编辑框的内容。
这个问题第16个回答:
//1、list ctrl初始化时要设置全行选中风格:
m_wndListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
//2、处理list ctrl的NM_DBLCLK消息:
void CMYDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
LPNMLISTVIEW pNMListView = (NM_LISTVIEW *)pNMHDR;
CString strText;
//是否点击了有效的项目。
if (pNMListView->iItem == -1)
{
AfxMessageBox("你没有点击任何项目");
}
else
{
//获取所点击的行和列的例子。
strText.Format("你点击了第%d行", pNMListView->iItem);
AfxMessageBox(strText);
strText.Format("你点击了第%d列", pNMListView->iSubItem);
AfxMessageBox(strText);
//在这里显示对话框。可以使用GetDlgItemInt获取在文本框控件中输入的次数。
//然后使用CString strNumber; strNumber.Format将次数转换为字符串。
//最后使用m_wndListCtrl.SetItemText(pNMListView->iItem, 1, strNumber);设置第1列(次数列)的值。
}
*pResult = 0;
}
这个问题第17个回答:
//在CDD的OnInitDialog函数中为CListctrl控件
[1] [2] 下一页
请问如何获得CListCtrl控件的当前选择项(单选和多选)?谢谢。
请问如何获得CListCtrl控件的当前选择项(单选和多选)?谢谢。问题点数:20、回复次数:6Top
1 楼aceouter(outer)回复于 2005-11-28 17:15:37 得分 5
CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
ASSERT(pListCtrl != NULL);
POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!/n");
else
{
while (pos)
{
int nItem = pList->GetNextSelectedItem(pos);
TRACE1("Item %d was selected!/n", nItem);
// you could do your own processing on nItem here
}
}
Top
2 楼lixiaosan(小三)回复于 2005-11-28 17:19:54 得分 5
// The pointer to my list view control.
extern CListCtrl* pmyListCtrl;
// Set the selection mark to the first item only if no other item is
// selected.
if (pmyListCtrl->GetSelectionMark() == -1)
pmyListCtrl->SetSelectionMark(0);
CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
ASSERT(pListCtrl != NULL);
POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!/n");
else
{
while (pos)
{
int nItem = pList->GetNextSelectedItem(pos);
TRACE1("Item %d was selected!/n", nItem);
// you could do your own processing on nItem here
}
}Top
3 楼happyparrot(快乐鹦鹉)回复于 2005-11-28 17:30:37 得分 10
好的方法:
int nIdx = m_ListCtrl.GetNextItem(-1,LVNI_SELECTED);
如果有多选,那么判断nIdx是否为-1,不是则继续查找,继续查找用:
nIdx = m_ListCtrl.GetNextItem(nIdx,LVNI_SELECTED);Top
4 楼JonneyR(lxc)回复于 2005-11-28 17:31:29 得分 0
不错,学习了Top
5 楼qidai628(期待)回复于 2005-11-28 17:34:42 得分 0
在只能选择一项时,怎样得到当前选择项的index值?Top
6 楼happyparrot(快乐鹦鹉)回复于 2005-11-28 17:35:44 得分 0
用int nIdx = m_ListCtrl.GetNextItem(-1,LVNI_SELECTED);
就可以了。nIdx就是你要的indexTop
http://www.80diy.com/home/20051128/16/4423738.html
- clistctrl 双击怎么样获得行号,列号
- CListCtrl双击列头改变宽度
- DataGridview 获得当前单元格的行号和列号.
- MFC的ClistCtrl双击获取单元格的行 列
- 获取行号和列号
- gridview模板列事件中如何获得行号
- CListCtrl禁止表头双击
- CListCtrl添加双击事件
- CListCtrl按列排序
- [ZT]CListCtrl列固定
- CListCtrl 改变列名
- ClistCtrl 列宽问题
- CListCtrl按列排序
- Gridview中获得行号
- SSIS获得Excel行号
- 怎么样获得积分呢?
- 新增一个行号列
- 隐藏行号列标
- 如何使你的博客受Google欢迎
- 平衡链入链接和链出链接
- 【转帖】C++各大有名库的介绍
- 如何提高站点的链接流行度
- 近距离观察SEO
- clistctrl 双击怎么样获得行号,列号
- 链接流行度(Link Popularity)
- 在(CListView)列表中添加右键菜单方法
- Google PageRank排名新算法一
- 简单说说会话Bean
- Google PageRank排名新算法二
- MapX在VC++中集成实现军用标图系统的研究
- Google PageRank排名新算法三
- 如何知道自己的信息