我有這個特殊的問題,而編程在C++網上商店Win32應用程序,但我不知道如果我能解釋一下就OK了:贏得32編程C++
我有這個class Product{};
,是應該持有商店中每個獨特產品的信息(類型,名稱,價格,金額)(我把它寫成一個普通的類,並不確定是否必須寫作mfc類?)。我將製作一個包含商店所有可用對象(產品)的矢量。
這個想法是有一個管理員配置文件,允許添加新產品並刪除它們。所以我想從那些他將要輸入數據並將這些數據保存到課堂的編輯框中獲取這些信息。問題是我不知道用什麼函數從界面對話框中獲取信息。我試過GetDlgItemText
和SetDlgItemText
(SendDlgMessage
),但返回的類型是int
,所以我猜這是我應該使用的其他東西?
INT_PTR CALLBACK Seller(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_BUTTON1: {
Product obj;
GetDlgItemText(hDlg,IDC_EDIT3|IDC_EDIT2,text,20);
SendDlgItemMessage(hDlg,obj.SetType(text),LB_ADDSTRING,0,(long)text);
編輯:
我忘了提的是,第三次正式參數「文本」,實際上是在那裏我存儲從DLG項目信息的全球緩衝區變量:)所以實際上我的問題是與發送該從緩衝區到類的對象的信息產品
編輯2:我想通了。由於我想將信息存儲在向量中,因此我不需要首先使用SendDlgItemMessage函數。只需將使用該類產品的setter函數,然後直接的push_back產品類型的對象向量
你爲什麼要在Win32中編寫而不是使用GUI框架來讓你的生活變得更加困難?它是你的代碼,而不是繼承的代碼庫呢? – Devolus 2013-05-03 17:15:27
@Devolus:爲什麼不呢? – Xearinox 2013-05-03 17:26:13
由於其複雜和容易出錯。作爲一個學習經驗,如果你想了解Windows的內部運作情況,這並不壞,但我絕對不會這樣做一個商業項目。在這些GUI庫中,有大量的幫助類讓您的生活更輕鬆,代碼更易於維護。 – Devolus 2013-05-03 17:28:30