鼠标选中的是哪一个表格,知道,通过可以使用下面代码:
POSITION sSelPos = NULL;
while(sSelPos = m_listctrlGetFirstSelectedItemPosition())
{
int nSelItem = -1;
nSelItem = m_listctrlGetNextSelectedItem(sSelPos);
if(nSelItem 〉= 0 && nSelItem〈m_listctrlGetItemCount())
{
这个nSelItem 就是我们要的DD
}
}
获得选中项:
方法一:
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);
}
}
方法二:
int i=m_oldinsGetCurSel(); //得到在第一个ListCtrl列表中选择项的索引
CString str;
if(i==LB_ERR) //表示没有选择
{
return;
}
方法三:
int i=m_listGetSelectionMark();
删除CListCtrl中选定的项:
POSITION pos;
int nIndex;
for(; pos= GetFirstSelectedItemPosition();)
{
nIndex = GetNextSelectedItem(pos);
DeleteItem(nIndex);
}
用程序选中某一行,使之选中
m_listctrlSetItemState(nIndex,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
不选中,取消选中之
m_listctrlSetItemState(nIndex,0,LVIS_SELECTED|LVIS_FOCUSED);
设置背景颜色:
m_listSetBkColor( RGB( 100, 180, 250 ) );
设置字体颜色:
m_listSetTextBkColor( RGB( 100, 180, 250 ) );
不明白if (nFlags & MK_CONTROL)这句是什么意思?调试下nFlags和MK_CONTROL值是多少。。要判断是否按下Ctrl+C,可用类向导里添加PreTranslateMessage消息BOOL 类名::PreTranslateMessage(MSG pMsg)
{
//用PreTranslateMessage的方法,判断Ctrl+C是否按下,按下就执行快捷键对应的 *** 作
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == 'C' && IsCTRLPressed())
{
//AfxMessageBox("Ctrl + C 被按下");
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
使用EnumWindows函数可以实现遍历所有的顶层窗口程序,并得到程序的句柄、类名及标题信息。
开发核心过程:创建一个单文档的MFC工程,将其视图类的基类设置为CListView。
在视图类的PreCreateWindow函数中,设置列表为报表格式,如下:
BOOL CEnumWindowsProcView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
csstyle |= LVS_REPORT | LVS_NOSORTHEADER;//设置列表视为报表格式
return CListView::PreCreateWindow(cs);
}
以上就是关于mfc 用listcontrol (Report)做了个表格,怎么选择表格中的一个格,并实现复制这个格中的内容。全部的内容,包括:mfc 用listcontrol (Report)做了个表格,怎么选择表格中的一个格,并实现复制这个格中的内容。、MFC 怎么判断是否按下了Ctrl+C、怎样获取mfc的窗口名,类名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)