草庐IT

c++ - 如何在单独的线程中创建带有进度条的 MFC 对话框?

我的应用程序可能需要一段时间才能连接到数据库。此连接是通过单个库函数调用建立的,即我无法将进度更新放在那里并进行回调或类似操作。我的想法是在连接到数据库之前在单独的线程中创建一个带有进度条的对话框。此对话框将使用CProgressCtrl::StepIt()不断更改进度状态,以便用户看到正在发生的事情。在设置该对话框并执行其操作后,我想从主线程调用数据库连接函数。连接函数完成后,我想停止进度条线程。让我画一幅画:CMyApp::ProgressThreadInitInstance().|.|.+-CreateDialog-+|||AnimateConnectProgresstoBarD

C++ CLI System.String^ 到 MFC LPCTSTR

如何将系统(.net)C++\CLIString^转换为MFCC++LPCTSTR字符串。将LPCTSTR转换为String^非常容易,但到目前为止还没有找到相反的方法。 最佳答案 如果您有VisualStudio2008或更高版本,您应该能够使用C++/CLI编码(marshal)处理库来执行此操作,如下所示:#includeusingnamespaceSystem;usingnamespacemsclr::interop;...String^cliString;marshal_contextcontext;LPCTSTRcstr

C++ MFC 获取当前日期和时间

在我编程生涯的大部分时间里,我一直在使用VB.NET进行编程。我有一个提供给我的C++项目,我需要对其进行一些修改,我感到绝望和困惑。它是C++中的VisualStudio2008MFC项目。定义了一个输出变量:charszout[900];下面这一行,用于在输出之前将值附加到输出变量:strcpy(szout,"TextHere")因此,我尝试过的众多搜索示例之一是在顶部包含:#include然后是我的代码:SYSTEMTIMEst;GetSystemTime(&st);charmyDate[20]=st;CT2CAoutputDate(myDate);strcat(szout,ou

c++ - MFC 工具栏图标的颜色深度更高?

我想知道如何在MFC中制作一个使用24位或256色位图而不是可怕的16色位图的工具栏。任何人都可以指出一些简单代码的方向吗?谢谢 最佳答案 发生这种情况的原因是MFCCToolbar类在内部使用了一个图像列表,该列表初始化为仅使用16种颜色。解决方案是创建我们自己的图像列表并告诉工具栏使用它。我知道这适用于256色,但我还没有用更高的位深度测试它:首先,从资源加载256色位图:HBITMAPhBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_

c# - 面向 future 的大型 UI 应用程序 - 具有 2008 功能包的 MFC 或 C# 和 Winforms?

我的公司使用VisualC++中的MFC作为UI开发的事实标准开发了一个长期存在的产品。我们的代码库包含大量必须保持运行的遗留/陈旧代码。其中一些代码比我还早(最初是在70年代后期编写的),我们团队的一些成员仍在使用VisualStudio6。不过,值得庆幸的是,内部得出的结论是,与竞争对手的产品相比,我们的产品看起来有些过时,需要采取一些措施。我目前正在开发UI的一个新区域,该区域与产品的其余部分完全不同。因此,我有机会尝试"new"技术堆栈,作为一种试验场,然后再开始漫长的UI其余部分迁移过程。我在业余时间使用C#与WindowsForms和.netFramework有一段时间并且

c++ - 如何删除文件 MFC 的只读属性

在我的MFC应用程序中,我对特定文件设置了只读属性。我是通过使用SetFileAttributes()函数完成的。在某些时候,我必须再次删除该文件的该属性。谁能解释一下如何做到这一点? 最佳答案 再次使用SetFileAttributes重置标志:SetFileAttributes(pszFilename,GetFileAttributes(pszFilename)&~FILE_ATTRIBUTE_READONLY);可能值得补充的是,如果函数失败,此方法返回0,您可以使用GetLastError()。

c++ - MFC 应用程序如何自行终止?

MFC应用程序彻底关闭自身的正确方法是什么? 最佳答案 AfxGetMainWnd()->PostMessage(WM_CLOSE); 关于c++-MFC应用程序如何自行终止?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14491/

c++ - 将 MFC 支持添加到 Qt 项目

我有一个Qt项目,想使用一个包含“afxstr.h”的外部库。问题是,每当我在链接到lib并包含它们的header后进行编译时,我都会收到错误消息:#errorafxstr.hcanonlybeusedinMFCprojects.Useatlstr.h当然,我的项目不是MFC项目,我不能使用atlstr.h代替,因为它不是我的库。我正在寻找一个快速的解决方案!我正在使用VS2010。有问题的库是InteractiveBrokersAPI. 最佳答案 相应的设置是ConfigurationProperties/General,Useo

c++ - 无论如何,是否可以通过 PC 重启或用户单击应用程序快捷方式来识别 MFC 应用程序启动?

我有一个MFC应用程序。此应用程序在PC重新启动时运行,显然是用户单击应用程序图标。当用户单击应用程序图标时,应用程序将启动这是正常情况。但是如果应用程序从PC重启运行,我想最小化应用程序系统托盘。系统已经实现,但我不知道如何检测应用程序是由PC启动还是用户点击启动。有什么方法可以检测MFC应用程序中的这些情况吗?我们非常感谢您的每一次帮助。谢谢。///////////////////////////////////////////////////////////////////////////更新:@michael-chourdakis先生您好,非常感谢您的宝贵建议。我正在下面更新我

windows - 如何在不填充的情况下绘制圆角矩形(在 MFC 中)?

MFC/GDI大师们的另一个绘图问题...:-)我正在使用MFC,并且正在使用CDC对象进行绘图。这很好用。但现在我想绘制一个圆角矩形,线条宽度为几个像素。但我不希望发生任何填充!有一种方法CDC::RoundRect-我只是设置了我想要的笔,然后用那支笔得到了一个漂亮的圆角矩形。但是CDC::RoundRect也会用当前画笔填充矩形。有没有办法只画线,不填充?我还没有找到其他方法吗?或者我可以创建某种不会改变矩形中间内容的“空画笔”吗?如果有一些好的建议,我将不胜感激!/来自瑞典的安德斯 最佳答案 在绘制圆角矩形之前选择一个NUL