草庐IT

mfc-feature-pack

全部标签

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

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

windows - 如何卸载 "program and features"中的程序?

同时通过控制面板卸载一个msi包。在任务栏中,我注意到带有commandLine\x的msiexec.exe没有被调用,但msi包仍然被卸载。在存储该特定软件的注册表中,他们提供了卸载字符串,其中给出了类似这样的内容“MsiExec.exe/X{2012098D-EEE9-4769-8DD3-B038050854D4}”。所以还有其他方法可以在不调用Msiexec.exe的情况下卸载软件??如果确实如此,那又如何呢??有人可以启发我吗 最佳答案 对于WindowsInstaller产品,不使用注册表中的UninstallString

c++ - 如何保存MFC应用程序的布局设置?

我知道有些函数可以轻松编写Windows注册表,但是我发现在使用向导创建的新MFC项目中,一些信息(如拆分条位置、控件的可见性)会自动存储(或者至少我发现没有CWinApp::Write*在项目中调用)。因为我也有没有这种行为的旧项目,所以我需要弄清楚如何在没有项目向导帮助的情况下做到这一点。请问有人知道这是如何工作的吗? 最佳答案 MFC控件状态保存魔法发生在“新建”MFCFeaturePack中,特别是在SaveState方法中,例如CMFCToolBar::SaveState.因此,要利用这一点,您需要升级您的工具栏和菜单以使

windows - MFC 应用程序在 NTDLL.dll 中崩溃

我有一个基于MFC的应用程序。它会在几秒钟后继续寻找文件(使用基于CreateTimerQueueTimer的计时器)并执行一些操作。这在XP上总是崩溃(原因不明)。此应用程序在Windows7和Windows8上运行良好。但在XP上问题仍然存在。下面是没有显示任何帮助的调用堆栈反汇编截图如下:编辑1:我更改了一些设置并获得了这个新的调用堆栈。但是还是没有得到线索。:我不明白如何找出崩溃的原因。是否有任何提示或任何方式来跟踪它从反汇编中播种?还是系统的NTDLL.DLL文件有问题?欢迎任何帮助。 最佳答案 分析堆栈后,我意识到可能是

c++ - 基于 CDialog 的 MFC 应用程序仅在主监视器中启动

例如,我通过双击其可执行文件从Windows资源管理器启动基于CDialog的MFC应用程序。它通常在屏幕中央显示对话窗口。但如果我将Windows资源管理器窗口移动到辅助监视器并在那里双击它,它的窗口仍显示在主监视器中。如何让它在监视器中显示应用程序的启动位置?附言。对话框窗口从InitInstance显示如下:CTestMFCDlgdlg;m_pMainWnd=&dlg;INT_PTRnResponse=dlg.DoModal(); 最佳答案 好的。我知道了。没关系。谁有兴趣,MFC没有多显示器的概念。因此需要重写居中方法:vo

windows - MFC-- 遇到致命的死亡钻石

Windows编程新手。我想创建一个同时使用CPropertyPage和CDHtmlDialog的对话框吗?classCPropertyPage:publicCDialogclassCDHtmlDialog:publicCDialog由于我无法将上述每个案例的继承更改为“虚拟公共(public)”,是否仍然可以制作一个对话框,其中包含来自CPropertyPage的一些字段和来自的一些表单>CDHtmlDialog? 最佳答案 您可以将HTML对话框创建为属性页的子对话框。唯一的问题是如果用户按下取消,子对话框将关闭。您必须覆盖CD

c++ - 如何在两个 C++ MFC 插件之间进行通信?

我有一个用于C++MFC应用程序的插件。我正在与同一应用程序的另一个插件的开发人员合作,它试图在我的代码中获取事件通知。这两个插件都是c++dll的形式。如何将消息从我的插件传递到他的插件?该解决方案需要对我们两个插件以及主机应用程序的不匹配版本具有鲁棒性。通知是在控制点移动期间发出的,因此每秒发送几次。我可以设置一个回调机制,在加载时他的插件使用函数指针调用我的插件中的一个函数。我们不保证任何加载顺序,但我们可能会定期检查。我知道Win32有一个消息系统,但我不确定它是如何工作的,真的。我们可以添加一个Hook,然后我可以发送消息,但我对如何同步消息ID或我所说的以外的任何细节有点模

mfc - MFC 中的可折叠控件(包括示例)

在WindowsXP控制面板中,您可以在左侧看到一个漂亮的可折叠面板控件:(来源:leeindy.com)这些不仅是可折叠的,而且是动画的。我想知道这些是否是开发人员可以访问的任何类型的控件,特别是在MFC中?或者它们是自定义/定制功能? 最佳答案 如果您有带有MFC功能包的VisualStudio2008,请查看CMFCTasksPane类(class)。该功能包包括一个演示如何使用它的TaskPane示例应用程序。 关于mfc-MFC中的可折叠控件(包括示例),我们在StackOve

c++ - 如何在 C++ MFC 中同时打开两个对话框?

当我按下一个按钮时,是否可以在C++MFC中同时打开多个对话框?如何?(一种用于背景:全屏和半透明,一种用于对话框。)谢谢! 最佳答案 您可以以模态方式打开背景,然后让它打开前景。处理前台关闭,关闭后台。 关于c++-如何在C++MFC中同时打开两个对话框?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3700280/

c++ - MFC:混淆 ON_COMMAND 函数?

好的,这就是这个函数..ON_COMMAND(ID_COLOR_RED,OnColor)ON_COMMAND(ID_COLOR_GREEN,OnColor)ON_COMMAND(ID_COLOR_BLUE,OnColor)...voidCMainWindow::OnColor(){UINTnID=(UINT)LOWORD(GetCurrentMessage()->wParam);m_nCurrentColor=nID_ID_COLOR_RED;}所以,这里CurrentMessage的wParam的LOWORD应该包含Message的ID,没关系,但是m_nCurrentColor=n