c++ - win32 编程 C++

标签 c++ class winapi vector

<分区>

我在用 C++ 为在线商店编写 win32 应用程序时遇到了这个特殊问题,但我不确定我是否可以解释它:

我有这个 class Product{};,它应该保存商店中每个独特产品的信息(类型、名称、价格、数量)(我把它写成一个普通类不确定我是否必须写成 mfc 类?)。我将制作一个 vector ,其中包含商店中所有可用的对象(产品)。

想法是拥有一个管理员配置文件,允许添加新产品和删除它们。所以我想从他将要输入数据并将该数据保存到类的那些编辑框中获取该信息。问题是我不知道使用什么函数从界面对话框中获取信息。我已经尝试使用 GetDlgItemTextSetDlgItemText (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);

编辑:

我忘了提到第三个形式参数“text”实际上是一个全局缓冲区变量,我在其中存储来自 dlg 项目的信息 :) 所以实际上我的问题是将该信息从缓冲区发送到类的对象 Product

EDIT2:我想通了。我首先不需要 SendDlgItemMessage 函数,因为我想将信息存储在 vector 中。简单的会使用Product类的setter函数,然后直接push_back vector中Product类型的对象

最佳答案

查看 GetDlgItemText 的 MSDN 页面花点时间研究一下,尤其是ParametersReturn value 部分。请注意,第三个参数 lpString 被标记为输出(文档中的 _Out_[out])。您提供一个缓冲区,用于存储对话框项中的文本,并将其存储在那里。该函数的返回值用于告诉您实际存储了多少个字符。

关于c++ - win32 编程 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16364313/

相关文章:

c++ - 提高几何形状的分辨率

c++ - 哪种整数数据类型最有效地使用 x64 CPU 内核?

java - “找不到或加载主类”是什么意思?

c# - 无法从 TPanel 获取 TEdit 句柄

winapi - 为什么 PeekMessage 总是返回 TRUE?

c++ - 有没有整理C++代码的工具?

c++ - 浮点除法缺陷

c# - 带有枚举的无效初始值设定项成员类

javascript - 在单个命名空间下组合 javascript 伪类对象

windows - 使用 Win API 设置壁纸