问题标签 [clistbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - MFC 中的 C++ GUI - 分页小部件
我正在编写针对 WinCE 6.0 设备的 C++ 代码,并且我很难为我的应用程序最终确定 GUI。我必须使用的 VS 2005 窗口构建器似乎并没有简化这项任务,而且我找不到可以对 API 有所了解的文档,希望这里有人可以。
我需要在小部件页面上动态写入用户在/页面总数。我希望 CTEXT 是正确使用的小部件
但是我似乎没有找到正确的方法来打印 CTEXT(或任何其他合适的小部件)提前感谢任何好的建议。
mfc - 使用 MFC 将 CListBox 中的单个项目设置为粗体
我偶然发现了这篇文章:
http://asg.unige.ch/Past/fuentes/Mfc/HowTo_44.html
所以,我在我的项目中复制了这个类:
然后我在我的应用程序中使用它。我为 ownerdraw 等正确设置了属性,但结果如下:
粗体条目是最后一个条目。为什么渲染不正确?
我该如何解决这个问题和/或有更新的方法来完成这个问题?
c++ - Setting std::map items as itemdata of CListBox
I have a similar question here but the context of this new question is different.
Background
I have this variable: PublisherMap m_mapPublishers;
The definition of PublisherMap
is:
The code
I have this method that reads the map and populates a CListBox
:
Notice that I use item data:
It works absolutely fine. If I was using a CPtrArray
I would have assigned the actual structure object pointers against each entry in the list box.
The question
I don't know the mechanics of std::map
enough. Is there any safe way to directly associate each entry from the map (mapPublisher
) against each list box entry so that I can later access it?
I realise I could take the text of the list box entry and then find it in the map and get it that way. But if there is a more direct way to tie the two together?
c++ - MFC CListBox.AddString() 不显示字符串
我正在创建一个 MFC 应用程序并尝试在对话框类中添加列表框。当我使用调试配置时,它会出错并且应用程序崩溃。当我使用发布配置时,对话框显示,但为空。
我刚开始,所以我的代码是基本的:
但无论如何它都不起作用。
在调试配置中,我收到以下消息:“调试断言失败!”
在发布配置中,对话框是空的(而不是带有“Hello”的一行):
我的对话:
.
该错误发生在调用 AddString() 函数的那一刻,即使在 CMyDialog 类中调用该函数时也会发生该错误(例如,我试图在构造函数中调用它)。
我想知道我做错了什么,我想问题不在于对话框类本身,而在于其他地方。我试图通过互联网搜索,但我没有找到解决方案,所以我在这里:)
c++ - MFC - 带有可选复选框的 CListCtrl 行
在运行时,我正在尝试使用 MFC 创建一个单列自定义CListCtrl
(或者CMFCListCtrl
,但不是CheckListBox
- 我希望将来能够添加多个列)。使用LVS_EX_CHECKBOXES
样式强制所有项目都具有复选框。所需的控件应如下所示(item1 和 item3 有复选框,item2 没有):
从用户的角度来看,所需的列表控件应该这样创建:
到目前为止,我能够创建这样的控件,但是在调用基类方法LVS_OWNERDRAWFIXED
时添加会触发失败的断言:CListCtrl::DrawItem
这就是我的(不工作的)解决方案的样子,如果你知道如何解决这个问题,甚至可能以更简单的方式,请告诉我。谢谢。
编辑
在@Landstalker 的帮助下,我现在可以使用自定义绘图擦除复选框,但我仍然需要将文本移到左侧(因此它取代了不存在的复选框,如上图所示)。当前解决方案导致以下结果:
这是通过像这样处理 NM_CUSTOMDRAW 消息来实现的:
c++ - 使用 ON_WM_RBUTTONDOWN 升级 MFC CListBox 控件,以便对话框可以直接处理消息
我想知道提供的用于CListBox
控制的消息控制器集有多么有限。我已经在包含此控件ON_LBN_SELCHANGE
的消息映射中使用。CDialog
我也想使用ON_WM_RBUTTONDOWN
,所以我派生了 a class CMyListBox : public CListBox
,所以现在我可以在类中映射该消息,但我想以相同的ON_LBN_SELCHANGE
工作方式将它映射到对话框。
我的问题是是否可以将该消息重新发送到父对话框,以便我可以从CDialog
消息映射中处理它,以及这样做的最佳方法是什么(send_message、post_message 或是否有更好的通知机制)?
visual-c++ - 将 std::unique_ptr 传递给 CListBox::GetSelItems
我在这里看到了一个很好的答案,这在很大程度上帮助了我(创建包含分配数组的 unique_ptr 的正确方法)但我仍然有一个问题。
代码:
如果我pIndex
变成一个智能指针:
这样我就不需要delete[] pIndex;
打电话了。然后我不能pIndex
传给GetSelItems
. 我可以通过pIndex.release()
这里,但是我们再次删除时遇到了问题。
- 我看过这个讨论(问题传递 std::unique_ptr's),但我们不想传递所有权。
- 如果我简化它并声明我的变量:
auto pIndex = std::make_unique<int[]>(iSize).release();
那么我可以传递它,但现在有调用delete[] pIndex;
.
什么是正确的?