我正在寻找一个完整的、可工作的示例,说明如何使用C++在Windows Forms Rich text Box中将文本设置为斜体。
所有的例子都与以下类似:
System::Drawing::Font comment_font =
gcnew System::Drawing::Font(m_rich_text_script->SelectionFont,
System::Drawing::FontStyle::Italic);
m_rich_text_script->SelectionFont = comment_font;
我得到错误:
error C3673: 'System::Drawing::Font' : class does not have a copy-constructor
我相信这个错误是因为我没有包括System::Drawing::Font
的头文件。
我在网络和堆栈溢出中搜索了"C++Windows Forms italic",但没有一个显示要包含的文件名。有趣的是,MSDN网站没有显示#include for C++。
我正在Win7平台上的Windows CLR项目上使用Visual Studio 2010。
背景:我将方法的定义从Form1.h移动到Form1.cpp,并#包含"Form1.hpp"。
尝试使用System::Drawing::Font
对象的句柄而不是堆栈变量:
System::Drawing::Font^ comment_font = ...
下面是一个完整的C++类,给定一个富文本框,将其选择字体设置为斜体:
namespace SetToItalic
{
public ref class SomeClass
{
public:
static void SetRichTextBoxSelectionFontToItalic(
System::Windows::Forms::RichTextBox^ textBox)
{
System::Drawing::Font^ comment_font =
gcnew System::Drawing::Font(
textBox->SelectionFont,
System::Drawing::FontStyle::Italic);
textBox->SelectionFont = comment_font;
}
};
}
我已经使用Visual Studio 2013提供的工具链验证了这一点,方法是使用上面的代码将C#Windows窗体应用程序调用到C++/CLI程序集中。