2017-04-05 34 views
-2

你能解决我的问题吗? 我在my Formtext字段。我想打印一个字符串的日期和时间,我的意思是,光标在哪里。在窗体中打印日期和时间C++

我得到这个类这样的:

#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(),但它不是我的问题? 你能提供一些建议吗?

谢谢。

+2

“你能解决我的问题吗?”呃“不”。这不是如何工作。 SO既不是代码编写,也不是调试服务。你问*特定*问题;我们回答他们。我们不只是为你做你的工作。 –

+0

@JesperJuhl对不起!我不想让你为我工作。我要求提供一些建议 –

+0

你真的不应该在C++/CLI中使用WinForms;改为考虑C#。 –

回答

2

标准警告:虽然当然可以在C++/CLI中编写应用程序的主体,甚至可以使用WinForms在C++/CLI中编写GUI,但不建议这样做。 C++/CLI适用于互操作场景:其中C#或其他.Net代码需要与非托管C++接口,C++/CLI可以提供这两者之间的翻译。对于初级开发,如果你想托管代码,推荐使用WinForms或者WPF,如果你想要托管代码,可以使用C++。

好吧,说:你已经有了完整的.Net库,为什么不使用它?

void времяИДатаToolStripMenuItem_Click(Object^ sender, EventArgs^ e) 
{ 
    DateTime now = DateTime::Now; 
    String^ dateString = now.ToString("MMMM"); 
} 
+0

感谢您的咨询。现在我正在去做这件事。非常感谢! –

0

假设你的文本字段被称为textField,用途:

textField->Text = new string(Buffer); 

此外,您的呼叫

GetDateFormat(LOCALE_USER_DEFAULT, 0, &sys_t, szFormat, Buffer, 256); 

是错误的。通过16,而不是256作为最后一个参数(因为您声明Buffer具有16个字符)。

+0

在我看来,我的文本字段isn:t叫做'textField'。但是使用'richBoxText1'是否正确?它会像'richBoxText1->文本(缓冲区);' –

+0

我相信你必须做'richBoxText1-> Text = new string(Buffer);' –

+0

是的,我得到了我需要的东西。谢谢! –