2017-04-05 35 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

是的,我得到了我需要的東西。謝謝! –