调用成员函数时出错

时间:2009-10-05 01:27:30

标签: c++ user-interface

您好,我今天刚开始使用C ++,我正在制作复选框。我尝试在if语句中使用CheckBox1->Checked或其他什么,但它不起作用。

错误是:

  

错误2错误C2227:' - >选中'必须指向类/ struct / union / generic类型

编辑:代码是:

    void function ()
{
 if (1001->Checked)
 {
             Sleep(2000);
 }
}

2 个答案:

答案 0 :(得分:5)

如果没有看到某些代码,就很难提供有针对性的帮助。

但是,通常会出现该错误消息,因为您要取消引用的项目不是指针。

检查以确保其类型正确。它应该是:

tCheckBox *CheckBox1;

一种可能性是你已经宣布它不是一个指向复选框的指针,而是一个复选框本身:

tCheckBox CheckBox1;

请注意那里没有星号,否则会将其标记为指针。在这种情况下,如果框架允许,则使用CheckBox1.Checked而不是CheckBox1->Checked(这不是标准C ++,因为该野兽没有GUI库的概念)。

如果这没有帮助,请发布代码,以便我们提供更好的建议。

更新

if (1001->Checked) ?????

1001 不是一个指针 - 它不是任何描述的变量,它是一个整数常量。

您需要声明并使用某些描述的变量。我认为,第一步是阅读框架的文档和/或获取一些编译和工作的示例代码,基于您的初始工作。

答案 1 :(得分:1)

使用CButton::GetCheck()确定复选框的状态 - 如此......

CButton* pButton = (CButton*) GetDlgItem(IDC_CHECKBOX_RESOURCE_ID);

if ( BST_CHECKED == pButton->GetCheck() )
{
  // button is checked
}