问题标签 [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.

0 投票
1 回答
251 浏览

c++ - MFC 中的 C++ GUI - 分页小部件

我正在编写针对 WinCE 6.0 设备的 C++ 代码,并且我很难为我的应用程序最终确定 GUI。我必须使用的 VS 2005 窗口构建器似乎并没有简化这项任务,而且我找不到可以对 API 有所了解的文档,希望这里有人可以。

我需要在小部件页面上动态写入用户在/页面总数。我希望 CTEXT 是正确使用的小部件

但是我似乎没有找到正确的方法来打印 CTEXT(或任何其他合适的小部件)提前感谢任何好的建议。

0 投票
1 回答
522 浏览

mfc - 使用 MFC 将 CListBox 中的单个项目设置为粗体

我偶然发现了这篇文章:

http://asg.unige.ch/Past/fuentes/Mfc/HowTo_44.html

所以,我在我的项目中复制了这个类:

然后我在我的应用程序中使用它。我为 ownerdraw 等正确设置了属性,但结果如下:

列表框输出

粗体条目是最后一个条目。为什么渲染不正确?

我该如何解决这个问题和/或有更新的方法来完成这个问题?

0 投票
2 回答
219 浏览

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?

0 投票
1 回答
1050 浏览

c++ - MFC CListBox.AddString() 不显示字符串

我正在创建一个 MFC 应用程序并尝试在对话框类中添加列表框。当我使用调试配置时,它会出错并且应用程序崩溃。当我使用发布配置时,对话框显示,但为空。

我刚开始,所以我的代码是基本的:

但无论如何它都不起作用。

在调试配置中,我收到以下消息:“调试断言失败!” 调试断言失败!

在发布配置中,对话框是空的(而不是带有“Hello”的一行):

我的对话:

我的对话.

该错误发生在调用 AddString() 函数的那一刻,即使在 CMyDialog 类中调用该函数时也会发生该错误(例如,我试图在构造函数中调用它)。

我想知道我做错了什么,我想问题不在于对话框类本身,而在于其他地方。我试图通过互联网搜索,但我没有找到解决方案,所以我在这里:)

0 投票
1 回答
630 浏览

c++ - MFC - 带有可选复选框的 CListCtrl 行

在运行时,我正在尝试使用 MFC 创建一个单列自定义CListCtrl(或者CMFCListCtrl,但不是CheckListBox- 我希望将来能够添加多个列)。使用LVS_EX_CHECKBOXES样式强制所有项目都具有复选框。所需的控件应如下所示(item1 和 item3 有复选框,item2 没有):

在此处输入图像描述

从用户的角度来看,所需的列表控件应该这样创建:

到目前为止,我能够创建这样的控件,但是在调用基类方法LVS_OWNERDRAWFIXED时添加会触发失败的断言:CListCtrl::DrawItem

在此处输入图像描述

这就是我的(不工作的)解决方案的样子,如果你知道如何解决这个问题,甚至可能以更简单的方式,请告诉我。谢谢。

编辑

在@Landstalker 的帮助下,我现在可以使用自定义绘图擦除复选框,但我仍然需要将文本移到左侧(因此它取代了不存在的复选框,如上图所示)。当前解决方案导致以下结果:

在此处输入图像描述

这是通过像这样处理 NM_CUSTOMDRAW 消息来实现的:

0 投票
2 回答
84 浏览

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 或是否有更好的通知机制)?

0 投票
1 回答
56 浏览

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;.

什么是正确的?