2009-10-05 6 views
0

Привет, я только начал использовать C++ сегодня, и я работаю над флажками. Я попытался использовать CheckBox1->Checked в инструкции if или что-то еще, но он не работает.Ошибка при вызове функции-члена

Ошибка:

Ошибка 2 Ошибка C2227: слева '-> Checked' должен указывать на класс/структуры/объединения/общий тип

EDIT: Кодекс :

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

Пробовали ли вы на самом деле читаете документацию о то, что вы пытаетесь работать? (MFC?) – shoosh

+0

Пожалуйста, разместите код, а также укажите, с каким графическим интерфейсом вы пытаетесь работать. –

+0

Я пробовал Win32 и MFC. – Brandon

ответ

5

Не видя некоторых из вашего кода, очень сложно предложить целенаправленную помощь.

Однако сообщение об ошибке обычно возникает из-за того, что элемент, который вы удаляете, не является указателем.

Проверьте, чтобы это был правильный тип. Это должно быть что-то вдоль линий:

tCheckBox *CheckBox1; 

Возможно, что вы объявили его не как указатель на флажке, но как сам флажок:

tCheckBox CheckBox1; 

Примечание неимением звездочка, которая иначе обозначала бы ее как указатель. В этом случае вы должны использовать CheckBox1.Checked, а не CheckBox1->Checked, если это разрешено фреймворком (это не стандартный C++, поскольку этот зверь не имеет концепции библиотек GUI).

Если это не поможет, отправьте код, чтобы мы могли предложить лучшие предложения.

Update:

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

1001 является не указатель - это не переменная любого описания, это целая константа.

Вам необходимо объявить и использовать переменную некоторого описания. Первым шагом, я думаю, является ознакомление с документацией для вашей структуры и/или получение кода примера, который компилируется и работает, основываясь на вашей первоначальной работе.

+0

Я предполагаю, что 1001 - это IDC ресурса элемента управления в MFC. –

1

Использование CButton::GetCheck() для определения состояния флажка - вот так ...

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

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

Одна из низких точек MFC заключается в том, что он не знает тип окна. Вы должны вывести результаты GetDlgItem в CButton *, потому что в противном случае он не будет назначать его указателю на кнопку. –

+0

Да, я знал, что что-то забыл. Благодарю. – mocj

Смежные вопросы