jjzjj

CListCtrl

全部标签

c++ - 如何在 MFC 中禁用 CListCtrl 的水平滚动条?

我的MFC工程中有一个CListCtrl控件,我不想随时显示横向的ScrollBar。但是垂直的需要正常显示。我用的是VS2010,有解决办法吗? 最佳答案 您可以通过派生您的List控件并拥有类似这样的东西来做到这一点:voidCListCtrlEx::OnNcCalcSize(BOOLbCalcValidRects,NCCALCSIZE_PARAMSFAR*lpncsp){ModifyStyle(WS_HSCROLL,0);CListCtrl::OnNcCalcSize(bCalcValidRects,lpncsp);}或者如果

c++ - CListCtrl 类覆盖和 OnTimer

我不确定我是否在做一些没有记录的事情。我创建了自己的派生自CListCtrl的类然后覆盖其中的OnTimer处理程序:voidCListCtrl2::OnTimer(UINT_PTRnIDEvent){//TODO:Addyourmessagehandlercodehereand/orcalldefaultswitch(nIDEvent){caseMY_TIMER_ID:{//DomyprocessingdoMyProcessing();}break;default:{//DefaultCListCtrl::OnTimer(nIDEvent);}break;}}但令我感到奇怪的是,调用

c++ - 检测 CListCtrl 列大小调整

我有一个非常简单的对话框,基本上包含一个CListCtrl,处于报告模式,带有多个列和一个标题。现在我需要检测用户何时调整了列的大小,我希望每次用户调整列大小时调用OnHdnChanged。除此之外,我的消息映射中还有这个,IDC_LIST1是列表控件的ID。ON_NOTIFY(LVN_ITEMCHANGED,IDC_LIST1,OnItemchangedList)ON_NOTIFY(HDN_ENDTRACKW,IDC_LIST1,OnHdnChanged)OnHdnChanged函数:voidCMyDlg::OnHdnChanged(NMHDR*pNMHDR,LRESULT*pRes

c++ - 绘制错误的 CListCtrl 项

我的CListCtrlEx派生自CListCtrl。此列表具有LVS_REPORT、LVS_OWNERDRAWFIXED和LVS_EX_GRIDLINES样式。我添加了更改此列表字体的可能性。这工作正常,但有一件坏事-如果我更改字体并且在此之前我没有滚动列表,那么所有列表项都会正确重绘,但如果我在字体更改之前完成滚动,那么列表项会重绘一点或低于列表网格水平线,i。e.项目文本被网格线覆盖。这是我如何更改列表字体:LRESULTCListCtrlEx::OnSetFont(WPARAMwParam,LPARAM){LRESULTres=Default();CRectrc;GetWindo

c++ - 如何防止 CListCtrl 闪烁?

我在启用了LVS_EX_DOUBLEBUFFER的虚拟模式(LVS_OWNERDATA)中使用CListCtrl/CListView报告View(LVS_REPORT),我遇到了难看的问题闪烁。双缓冲有一个真正的效果,但它不会停止所有闪烁(没有它非常慢)。我不想切换到需要大量返工的其他控件(如ObjectListView)闪烁的行为如何:在调整列大小时-首先使用浅灰色清洁背景,然后显示文本(背景为白色)鼠标滚动(动画)-在要显示新行的区域中会显示一个浅灰色条,时间很短。看起来它确实使用默认窗口背景颜色(浅灰色)清理了必须重绘区域的背景。如何解决闪烁问题? 最

c++ - 尽管有足够的空间,CListCtrl 仍显示省略号(仅限 Win2008 和 Win7)

我正在使用CListCtrl在ListView模式下显示一些带有图标的项目。大多数情况下,列表中只有一项右侧有足够的空间,但在我的Win2008系统(或Win7)上,它会使用省略号截断文本(例如“Tank”被截断为“Ta...”).这不会发生在所有数据上(甚至一些更长的字符串也可以),但在“Tank”示例中会反复发生。同样在WinXP系统上它工作正常-总是。ListView是通过rc文件创建的CONTROL"List2",IDC_LIST,"SysListView32",LVS_LIST|WS_BORDER|WS_TABSTOP,320,27,195,38然后实例化myListCtrl

c++ - 关于选择 MFC CListCtrl 项

我想做的是在CListCtrl中选择一个项目并使所选项目可见(向下滚动)。执行此操作的最佳方法是什么?我已尝试使用myListCtrl.SetItemState(idx,LVIS_SELECTED,LVIS_SELECTED)选择该项目,但我必须手动向下滚动ListCtrl才能使其可见。存在函数CListCtrl::GetTopIndex但我没有找到对应的SetTopIndex。非常感谢您的帮助! 最佳答案 您可以尝试使用EnsureVisible()http://msdn.microsoft.com/en-us/library/t

c++ - CListCtrl ListView 中的垂直滚动条

我有一个处于“列表”View模式的CListCtrl,我无法让它垂直滚动而不是水平滚动。我试过这里的建议:VerticalScrollbarinCListCtrl但这仅在使用图标View模式时有效。它在列表模式下不起作用。那么,如何让我的CListCtrl在ListView模式下垂直滚动? 最佳答案 你试过吗?“将设计器中的对齐样式从左更改为上。”VerticalScrollbarinCListCtrl 关于c++-CListCtrlListView中的垂直滚动条,我们在StackOve

c++ - 如何将 CListCtrl 中的项目设置为选中?

在没有标题的报告View中,ClistCtrl设置为单选和单列。我已经尝试过SetItemState(0,LVIS_SELECTED,LVIF_STATE)和SetSelectionMark(intindex)但这些不起作用。 最佳答案 您还需要在更新项目状态后调用SetSelectionMark。SetItemState(prev_item,~LVIS_SELECTED,LVIS_SELECTED);SetItemState(new_selected_item,LVIS_SELECTED,LVIS_SELECTED);SetSel

【MFC CListCtrl控件内容导出Excel/.csv文件】

【MFCC.ListCtrl控件内容导出Excel/.csv文件】1.使用工具:vs2017,excel。因为新版的ViusualStudio想要在已下载VisualC++框架的基础上添加新类需要在菜单栏的->项目->添加新项中进行(和旧版不同)2.在Typelib中的MFC类这一类型库中添加相关类和接口由于我一开始选择的是wpsoffice,注册表默认选择的是wps下的etapi的路径(但是好像没有接口,所以无奈选择了excel):3.导入excel.exe的路径,这样子就能选择接口了在这里我们选择:ApplicationRangeWorkbooksWorksheetsWorkbookWor
12