取得list control 被选内容的消息是什么??

depotmen 2003-09-15 10:00:05
只知道文本框是WM_GETTEXT,列表框是LB_GETTEXT,不知道list control 是哪个消息???
...全文
74 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
vcforever 2003-09-15
  • 打赏
  • 举报
回复
WM_SELECTCHANGED 消息!
楼上的已经说的很清楚了,连代码都有!
祝楼主早日解决问题!
呵呵……
  • 打赏
  • 举报
回复
BOOL CDLG3Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
CRect r;
m_ctrl.GetClientRect(&r);
m_ctrl.InsertColumn(0,"name",LVCFMT_LEFT,r.Width()/2);
m_ctrl.InsertColumn(0,"age",LVCFMT_LEFT,r.Width()/2);

LVITEM lvitem;
lvitem.mask = LVIF_TEXT ;
int nItem;

lvitem.iItem = 0;
lvitem.iSubItem = 0;
lvitem.pszText = "item11";
nItem = m_ctrl.InsertItem(&lvitem);

lvitem.iItem = nItem;
lvitem.iSubItem = 1;
lvitem.pszText = "item12";
m_ctrl.SetItem(&lvitem);

lvitem.iItem = 1;
lvitem.iSubItem = 0;
lvitem.pszText = "item21";
nItem = m_ctrl.InsertItem(&lvitem);

lvitem.iItem = nItem;
lvitem.iSubItem = 1;
lvitem.pszText = "item22";
m_ctrl.SetItem(&lvitem);
...
}
void CDLG3Dlg::OnButton2()
{
POSITION pos = m_ctrl.GetFirstSelectedItemPosition();
while(NULL != pos)
{
int nItem = m_ctrl.GetNextSelectedItem(pos);
for(int j = 0 ; j < 2 ; j++)
{
CString temp;
m_ctrl.GetItemText(nItem,j,(char*)(LPCTSTR)temp,100);
AfxMessageBox(temp);
}
}
}
daylight1980 2003-09-15
  • 打赏
  • 举报
回复
WM_SELCHANGED
flinming 2003-09-15
  • 打赏
  • 举报
回复
vup
depotmen 2003-09-15
  • 打赏
  • 举报
回复
异,这个消息怎么未定义?在MSDN里也找不到~~~
hummerking 2003-09-15
  • 打赏
  • 举报
回复
好像在选择了一个新行的时候,会发出两次 WM_SELCHANGE ?!在我的程序里是这样的,不知为什么?!
  • 打赏
  • 举报
回复
WM_SELCHANGE
  • 打赏
  • 举报
回复
void CDLG3Dlg::OnItemchangingList2(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
OnButton2();
*pResult = 0;
}

这两个消息试试
ON_NOTIFY(LVN_ITEMCHANGING, IDC_LIST2, OnItemchangingList2)
ON_NOTIFY(HDN_ITEMCHANGED, IDC_LIST2, OnItemchangedList2)
wocan 2003-09-15
  • 打赏
  • 举报
回复
WM_SELCHANGE
depotmen 2003-09-15
  • 打赏
  • 举报
回复
我是想说通过SENDMESSAGE来取得的,因为这个控件不是我建立的,而是另一个程序的,我要取得他的内容。
象取得EDITBOX就这样:SendMessage(hwnd,WM_GETTEXT,256,(long)szWindowText);
不知道list control 该怎么实现。
dhbo 2003-09-15
  • 打赏
  • 举报
回复
如果是静态控件那在控件右击后会有个WM_SELECTCHANGED 象按纽一样可以添加,如果是动态的可能要自己添加了
he_zhidan(何志丹:壮志在我心) 和楼上都说得很清楚了
daylight1980 2003-09-15
  • 打赏
  • 举报
回复
WM_SELECTCHANGED 消息!

这样来取文本和值

UINT uSelectedCount = m_ListColumn.GetSelectionMark();

if (uSelectedCount >= 0 && uSelectedCount<1000)
{
CString str = m_ListColumn.GetItemText(uSelectedCount,0);
int ColumnIdCur = m_ListColumn.GetItemData(uSelectedCount);
}
blue2moon 2003-09-15
  • 打赏
  • 举报
回复
GetCurSel函数得到选择内容在LIst中的位置,根据位置判断是什么内容
depotmen 2003-09-15
  • 打赏
  • 举报
回复
为什么这个消息未定义啊??我加载了afxwin.h 也编译不了,MSDN里也没介绍
'WM_SELECTCHANGED' : undeclared identifier

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧