Tag: mfc

面向未来的大型UI应用程序 – 使用2008 Feature Pack的MFC,还是C#和Winforms?

我公司开发了一种使用Visual C ++中的MFC作为UI开发的事实标准的长期产品。 我们的代码库包含大量遗留/古代代码,必须保持运行。 其中一些代码比我早(最初写于70年代末期),我们团队的一些成员仍在使用Visual Studio 6。 然而,幸运的是,内部已经得出结论,与我们的竞争对手相比,我们的产品看起来有点陈旧,并且需要做些什么。 我目前正在开发UI的一个新领域,它与产品的其他部分完全不同。 因此,我有机会尝试将“新”技术堆栈作为一种试验场,然后再开始移动UI的其余部分。 我在业余时间使用C#和Windows Forms以及.net框架一段时间并享受它,但我有点担心互操作引起的麻烦。 虽然UI的这个特定分支不需要与传统的C ++代码库进行太多的互操作,但我可以预见这将成为未来的问题。 另一种方法是继续使用MFC,但尝试利用VS2008附带的新function包。 我想这是最简单的选择,但我担心长寿,而不是利用.net的优点…… 那么,我选哪个? 我们是一个小团队,所以我的建议很可能被接受为我们未来的发展方向 – 我希望能够做到这一点。 MFC死了吗? C#/ Winforms是前进的方向吗? 还有什么我完全不知道的吗? 非常感谢!

将大型MFC应用程序迁移到WPF / .NET有哪些技巧?

我目前正在开发一个非常大的传统MFC MDI应用程序。 它有大量的UI元素 – 可停靠的工具栏,自定义树控件,上下文菜单等。它是一个图像处理应用程序,因此主视图使用DirectX和OpenGL自我渲染。 该产品大约有10年的历史,其中一个优先事项是更新它的外观和感觉。 知道微软在提供C ++ / MFC和.NET之间的互操作性方面做得很好,我认为以递增方式迁移代码库是有意义的。 我现在正在努力的是从哪里开始。 一种方法是使用WPF删除MFC框架并尽可能多地重用C ++代码。 这将让我们最大限度地发挥WPF架构的优势,但这将意味着一个漫长的开发阶段,直到我们再次完全正常运行。 另一种方法是用它们的WPF对应物一次替换一个MFC控件。 这将允许我们以增量方式工作。 我对这种方法的关注是,这意味着托管和非托管代码之间会有很多连接点,我不知道从哪里开始替换主菜单和工具栏等内容。 或者我还有其他选择吗? 任何有关此主题的信息的建议或链接将不胜感激。 更新: DavidK提出了一些很好的问题,所以我添加了这背后的动机。 1)产品的未来发展 该产品仍在积极开发中,并定期添加新function。 我认为尝试慢慢迁移到C#/ WPF会很有意义。 在我使用C#/ WPF的有限经验中,我发现在C ++ / MFC中工作效率会提高。 我们用WPF获得的另一件大事就是能够利用多头系统。 MFC应用程序仅限于单个顶级框架,因此很难利用多个监视器。 2)员工保留和招聘 找到愿意使用MFC的开发人员越来越难了。 对于当前开发人员的职业发展而言,接触新技术也很重要。

“语音泡沫”通知

我正在尝试通知在MFC应用程序中弹出类似这些气泡的内容: 大写锁定图像http://www.humanized.com/weblog/images/caps_lock_indication.png 我目前正在C#中创建一个接口模型来展示一些利益相关者,所以在那里也很好。 它不一定是语音泡沫式的:它可能类似于工具提示 – 但它必须在没有鼠标hover的情况下出现 干杯!

在c ++ / CLI中将c#中的String ^转换为CString

在MFC编写应用程序时,我需要帮助解决一个问题。 我在我的应用程序中使用CLR即Common Language Runtime来集成c#API。 但现在我坚持将System::String^转换为CString 。 我无法做到这一点。 我正在使用以下代码。 String^ csPass = gcnew String(strPassword.GetBuffer()); array^ Value = Encoding::UTF8->GetBytes(csPass); for (int i = 0; i Length; i++ ) { csPass += String::Format( “{0:X2}”, Value[ i ] ); } 现在我想将csPass转换为CString 。 谁可以帮我这个事。 先感谢您。