text
中有一个my Form
字段。我想用字符串打印日期和时间,我的意思是,光标在哪里。
我得到了这个课程:
#include <Windows.h>
//Russian letters are okay for this
private: System::Void времяИДатаToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
SYSTEMTIME sys_t;
GetSystemTime(&sys_t);
char szFormat[] = "MMMM";
char Buffer[16];
sys_t.wMonth = 1;
GetDateFormat(LOCALE_USER_DEFAULT, 0, &sys_t, szFormat, Buffer, 256);
}
};
我想使用MessageBox::Show()
,但这不是我的问题吗?
你能为此提出一些建议吗?
感谢。
答案 0 :(得分:2)
标准警告:虽然可以用C ++ / CLI编写应用程序的主体,甚至可以使用WinForms在C ++ / CLI中编写GUI,但不建议这样做。 C ++ / CLI适用于互操作场景:C#或其他.Net代码需要与非托管C ++接口,C ++ / CLI可以提供两者之间的转换。对于主要开发,如果您需要托管代码,建议将C#与WinForms或WPF一起使用,如果您想要非托管,则建议使用带有MFC的C ++。
好的,那说:你已经拥有了完整的.Net库,为什么不使用它呢?
void времяИДатаToolStripMenuItem_Click(Object^ sender, EventArgs^ e)
{
DateTime now = DateTime::Now;
String^ dateString = now.ToString("MMMM");
}
答案 1 :(得分:0)
假设您的文本字段名为textField
,请使用:
textField->Text = new string(Buffer);
另外,您致电
GetDateFormat(LOCALE_USER_DEFAULT, 0, &sys_t, szFormat, Buffer, 256);
错了。传递16
,而不是256
作为最后一个参数(因为您声明Buffer有16个字符)。