C ++でオンラインストア用のwin32アプリケーションをプログラミングしているときに、この特定の問題がありますが、うまく説明できるかどうかわかりません:
私はこれを持っています。これclass Product{};
は、ストアの一意の製品ごとに情報 (タイプ、名前、価格、金額) を保持することになっています (通常のクラスとして記述しましたが、mfc クラスとして記述する必要があるかどうかはわかりません)。そして、ストアで利用可能なすべてのオブジェクト (製品) を含むベクターを作成します。
アイデアは、新しい製品を追加して削除することもできる管理者プロファイルを持つことです。そのため、彼がデータを入力し、そのデータをクラスに保存しようとしている編集ボックスからその情報を取得したいと考えています。問題は、インターフェイス ダイアログから情報を取得するために使用する関数がわからないことです。GetDlgItemText
and 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);
編集:
3番目の正式なパラメータ「テキスト」は、実際にはdlgアイテムからの情報を格納するグローバルバッファ変数であることを忘れていました:)実際に私の問題は、バッファからクラスのオブジェクト製品にその情報を送信することです
EDIT2:私はそれを理解しました。ベクターに情報を保存したいので、そもそも SendDlgItemMessage 関数は必要ありません。単純にクラス Product のセッター関数を使用し、ベクター内のタイプ Product のオブジェクトを直接 push_back します。