您好,我今天刚开始使用C ++,我正在制作复选框。我尝试在if语句中使用CheckBox1->Checked
或其他什么,但它不起作用。
错误是:
错误2错误C2227:' - >选中'必须指向类/ struct / union / generic类型
编辑:代码是:
void function ()
{
if (1001->Checked)
{
Sleep(2000);
}
}
答案 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
}