草庐IT

c++ - vc++ - 如何将 CString 转换为 LPCWSTR

我试过这样做,但我没有找到任何方法。我问这个是因为我是Windows的新手。我尝试了STL-strings,但visualstudio2008-在STL-wstring-handling中积累了错误。关于那件事我以后会在其他问题中说很多。现在有人可以阐明这个问题吗? 最佳答案 最简单的方法是使用MFC字符串转换宏,定义在:https://learn.microsoft.com/en-us/cpp/atl/reference/string-conversion-macros?view=msvc-160例如,将CString转换为LPC

c++ - 为什么 OnKeyDown 不捕获基于对话框的 MFC 项目中的按键事件?

我只是在MFC(VS2008)中创建了一个基于对话框的项目,并将OnKeyDown事件添加到对话框中。当我运行项目并按下键盘上的键时,没有任何反应。但是,如果我从对话框中删除所有控件并重新运行项目,它就会工作。即使我在对话框上有控件,我应该怎么做才能获得关键事件?这是一段代码:voidCgDlg::OnKeyDown(UINTnChar,UINTnRepCnt,UINTnFlags){//TODO:Addyourmessagehandlercodehereand/orcalldefaultAfxMessageBox(L"Keydown!");CDialog::OnKeyDown(nCh

c++ - MFC - 显示模态对话框时主窗口变暗

我有一个相当标准的MFC应用程序,它包含一个主窗口,偶尔会弹出模式对话框。众所周知,在模式对话框关闭之前,在模式对话框之外什么都做不了。因此,一个不错的UI功能是使对话框后面主窗口的其余部分“变暗”,以直观地指示您在完成模式对话框之前不能使用它。一些网络应用程序和java/mac应用程序会这样做,但我从未见过它在传统的C++/MFC应用程序中完成。我想试一试,即使这对于平台来说并不常见。如何做到这一点?我在应用程序中有几个模态对话框,以这种模式使用://pMainFrameisavailableasapointertotheCWndofthemainwindowCMyDialogdia

c++ - 如何以编程方式检查 VC++ 中的 Internet 带宽?

我需要找到特定时间的可用带宽。代码必须在VisualC++或.Net系列中开发。如果有人知道怎么做,请帮助我。 最佳答案 检查带宽的唯一方法是实际尝试使用它,即从其他地方下载文件并测量吞吐量。即便如此,它也只是一个近似值,因为其他网络效应会影响结果:延迟非对称上传/下载其他流量 关于c++-如何以编程方式检查VC++中的Internet带宽?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

c++ - 如何将项目添加到 MFC 对话框中的列表控件

为了有一个像这样的表:在我的MFC对话框中,我向其中添加了一个ListControl。然后使用AddVariable向导,我为控件创建了这个变量:public:CListCtrlm_lstIDC_LIST1Control;然后在我的对话框的OnInitDialog函数中,我添加了这些代码行://TODO:Addextrainitializationherem_lstIDC_LIST1Control.SetExtendedStyle(LVS_EX_FULLROWSELECT);m_lstIDC_LIST1Control.SetExtendedStyle(LVS_EX_GRIDLINES)

c++ - MFC DoModal 对话框

好吧,我承认我对WindowsAPI甚至MFC都一无所知。当出现问题(文件名字符串中的非法字符)时,我会弹出一个错误窗口,我希望错误框是模态的。我一直想不通为什么它在访问doModal时会崩溃。这是我认为可以解决此问题的代码。此代码位于主窗口中按钮的事件处理程序中。CDialog*BadFileD=newCDialog();BadFileD->Create(IDD_STATUS,this);BadFileD->DoModal();我是不是有点智障了? 最佳答案 MFC对话框分为模态对话框和非模态对话框两种模式。(1)模态对话框的使用

c++ - 我可以重载 CArchive << 运算符以使用 std::string 吗?

我在我的MFC应用程序中使用std::string,我想将它存储在文档的Serialize()函数中。我不想将它们存储为CString,因为它在那里写了自己的东西,我的目标是创建一个我知道其格式并且可以被其他应用程序读取而无需CString的文件。所以我想将我的std::strings存储为4字节(int)字符串长度,后跟包含该字符串的该大小的缓冲区。voidCMyDoc::Serialize(CArchive&ar){std::stringtheString;if(ar.IsStoring()){//TODO:addstoringcodehereintsize=theString.s

c++ - 我可以在 MFC 中有多个 GUI 线程吗?

我有一个基于MFC的大型应用程序,它在主线程中包含一些可能非常慢的任务。这可以使应用程序看起来像是挂起,而实际上它正在完成一项长时间的任务。从可用性的角度来看,我想为用户提供更多有关进度的反馈,并可以选择以干净的方式中止任务。虽然将长期任务分散到单独的线程中将是一个更好的长期解决方案,但我认为实用的短期解决方案是创建一个新的GUI线程,封装在它自己的对象中,并带有包含进度条和取消按钮的对话框,用于类似于CWait对象的方式。主线程通过IsCancelled方法监控取消状态,并在需要时通过抛出结束。这是一种合理的方法吗?如果是的话,是否已经有一些MFC代码可供我使用,或者我应该自己编写?

c++ - 更改Windows 7/8跳转列表上MFC应用程序的应用程序标题

MFC应用程序中的哪个设置控制windows7/8跳转列表中显示的标题,就在实际跳转列表下方,pin应用程序选项上方?这主要是为了让本地化的字符串可以用于非英语系统。我对这个问题的第一个想法是它可以在版本资源文件中设置,尽管添加一个新的本地化部分(在本例中为瑞典语)并设置描述/文件名似乎不会影响我正在使用的文本有兴趣。 最佳答案 终于弄明白了,这里和其他几个地方使用的名称设置在应用程序的注册表项中[HKEY_CLASSES_ROOT\Applications\AppName.exe]"FriendlyAppName"="Thiste

c++ - 冷启动优化

我尝试搜索,但到目前为止还没有成功。有谁知道应该如何进行冷启动优化的好资源?有问题的应用程序是C++/MFC应用程序,使用VS2010编译,完整版,内置分析器可用。我试图减少所有额外的重量以获得热启动可接受的加载时间,但冷启动是NotAcceptable。有时接近30秒,而且没有什么是慢代码明智的。CPU负载在热启动期间达到80%,在冷启动期间保持在20%以下。我今天尝试使用延迟加载链接器设置,但我不太明白它们如何影响性能。此外,我尝试了可执行打包程序,但在VM上的测试似乎并没有更快。还有什么我可以尝试的吗? 最佳答案 冷启动时间长