我正在使用列表控件来显示vector中元素的表示。单击列表时,另一个控件会显示有关该元素的信息。元素的索引当前由它在控件中的索引确定,但是如果我想对结果进行排序或过滤,这将不再有效。有人告诉我可以使用虚拟列表控件,但MSDN不是很友好,有人可以告诉我如何为此使用虚拟列表控件吗? 最佳答案 坦率地说-将数据(数据vector中的位置)与列表控件中数据的呈现(列表ctrl中的位置)联系起来是我会远离的事情。在MFC中,每个控件都有一个“数据”DWORD成员变量——在MFC中编码时,我总是为添加的每个项目调用“SetItemData”,并
我正在尝试在Windows窗体窗体的行和列中动态添加一堆控件。例如,如果我有20个控件,我需要创建三列和n行。我如何实现这一点? 最佳答案 将TableLayoutPanel添加到您的表单。在运行时,使用new关键字实例化您的控件。将它们添加到tableLayoutPanel.Controls集合中。您可以将它们添加到特定的行和列,或者让面板让它们流入下一个可用的单元格。 关于windows-在WindowsForms窗体上动态添加控件,我们在StackOverflow上找到一个类似的问
我想获得一些控件的窗口句柄来用它做一些事情(需要一个句柄)。控件位于不同的应用程序中。奇怪的是;我发现许多控件没有窗口句柄,例如Windows资源管理器中工具栏(?)中的按钮。只需尝试获取文件夹/搜索/(等)按钮的句柄。它只给了我0。所以..第一个问题:为什么有些控件没有窗口句柄?在他们心里,不都是控制着window吗?(只是谈论标准控件,就像我在Windows资源管理器中期望的那样,没有在Pane等上自定义绘制。)这引出了我的第二个问题:如果您无法获取它们的句柄,如何使用它们(例如使用EnableWindow)?非常感谢您的任何意见!编辑(附加信息):Windows资源管理器只是一个
我注意到,如果您针对属于不在前台(即最小化)窗口的hWnd调用FindWindowEx或EnumChildWindows,则它们不会报告任何children。另一方面,如果我首先对正在查询的窗口调用SetForegroundWindow,然后调用FindWindowEx或EnumChildWindows,它们会报告所有子项.即使我感兴趣的窗口不在前台,下一次调用也会报告所有子项。它几乎是在第一次调用后进行某种缓存? 最佳答案 这是您自己的应用程序中的一个窗口,还是您正在调查第三方应用程序的功能?我猜应用程序只会在它第一次进入前台时创
我有一个在Windows764位上运行的32位应用程序。该应用程序(用C++编写)托管一个WebBrowser控件。当要求WebBrowser控件弹出一个新窗口(通过javascriptwindow.open()调用)时,它会启动一个新的InternetExplorer进程。特别地,这个新的IE进程是一个64位的IE进程。由于网页喜欢AdobeFlash,不幸的是我需要确保启动的新IE进程是32位版本(这是我机器上的默认版本),以便可以显示AdobeFlash内容。有趣的是,IE本身(围绕WebBrowser/MSHTML的包装器)不会遇到这个问题,这意味着可以设置某种配置来提
所以基本上,我有一个选项卡控件(WC_TABCONTROL),我想将所有与单个选项卡页一起出现的控件放在一个窗口上(控件,如果你愿意,或者面板).我想在wxWidgets中创建类似面板的东西,这样当我调用ShowWindow(panel,SW_HIDE)时,我可以隐藏面板和其中的所有控件。我希望你明白。谢谢,格兰特。 最佳答案 我想你想要的是一个无边框、无标题的对话框。我已经在选项卡控件中使用了这个东西。在选项卡控件点击事件上显示和隐藏它们。实际上,一些选项卡控件会在它们自己的标题中使用对话框的标题。YMMV.这是一个老派的例子。它
我遇到了Windows列表控件的问题(我专门使用MFC,但它似乎适用于Windows公共(public)控件库中的所有列表控件)。在我的特定情况下,我想创建一个包含两列或更多列的列表控件。第一列(0)是纯文本的,用于允许用户通过在该行中键入文本来跳转到条目。第二列(或第三列、第四列或其他列)有一个图像(或图像和文本;无论哪种方式)。这一切都很好,可以很容易地完成,没有问题,但是最后的列表控件最终在第0列的文本左侧有一个空格(它可能在RTL系统的右侧).这个垫片似乎是为图像保留的,我想不出一种方法来防止它。(排列列的特定顺序并没有改变任何东西。)环顾四周,我发现其他一些人也在提示同样的事
我正在为我的应用程序寻找一个面包屑栏控件,最好是免费的。对于那些现在知道它是什么的人来说,它是资源管理器顶部的地址栏:如果有人知道有这个的任何免费或付费控制库,请回答。 最佳答案 您可能想要创建自己的控件来执行相同的操作(前提是您传递了可以在文件夹中划分的正确文件路径)。有一篇MSDN杂志文章here展示了如何实现面包屑控件。即使您使用的是C#,将本文中的VB.NET代码转换为C#也相当容易。 关于c#-Windows资源管理器Crumb-Bar控件,我们在StackOverflow上找
我正在开发一个在WindowsXPEmbedded上运行的触摸屏应用程序。如果用户按下并按住几秒钟,将出现一个上下文菜单。但是,这会干扰按住滚动条等控件,从而阻止用户一直滚动到最后。但是,我不想在整个应用程序范围内禁用右键单击功能。我只想将滚动条之类的控件排除在该操作之外。当用户按下触摸屏滚动条上的向下箭头时,日志显示:----ApplicationStarts----OnMouseDown:Left,Capture=true[Afewsecondslaterinthelog,eventhoughtheuserisstillholdingdown...]OnMouseUp:Left,C
这个问题与thismyquestion有关.现在我在类里面有了表格,当用户单击按钮时,我会显示(或隐藏)表格。没关系。但是当我使用原始表单移动或单击原始表单中的某处时,我想隐藏表单。新形式位于原始形式之后。我正在尝试像lostfocus和其他事件,但它没有帮助。所以我想我需要一些技巧来检查我的控制是否有父形式(原始形式)或其他一些黑客的点击。我知道最好的办法是我输入代码,但我有很多行,所以我认为最好的方法是,如果你以一般方式帮助我,然后我尝试应用到我的应用程序。 最佳答案 您可以使用全局鼠标和键盘来完成hook.事实上,它已包含在C