vc++ Проблем

4 отговора 175 прегледа
#1

vc++ Проблем

Здравейте, значи имам следния проблем. Имам един диалог и в него едит контроли, при инит на диалога давам следното
GetDlgItem(IDC_EDIT1)->SetWindowText("Test");
и програмата ми гръмва. Пробвах и по друг начин:
GetDlgItem(IDC_EDIT1)->SetDlgItemText(IDC_EDIT1,"Test");
пак същата работа.
Някви идеи ?

Отговор
в отговор на vc #2

Re: vc++ Проблем

GetDlgItem(IDC_EDIT1)

Eй тва какъв указател връща? Хващам се на бас, че е NULL. Я провери пак дали контрола ти се казва IDC_EDIT1.

Малко отклонение:

GetDlgItem(IDC_EDIT1)->SetWindowText("Test");

Този ред прави 2 неща. Когато нещо изгърми има да се чудиш кое от двете е. Е от друга страна прекарваш забавни часове пред дебъгера и пишеш във форума - лошия код си има и плюсове .

--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Отговор
в отговор на Mycлoн #3

не бързай с баса

ако нямаше идентификатор IDC_EDIT1, то щеше да изгърми още на компилация, а не по време на изпълнение. доколкото схванах обаче проблема е по време на изпълнение, така че не ми звучи да е толкова просто. по птинцип в OnInitDialog вече съществува прозорец и няма проблем да се вика GetDlgItem. така както е описан проблема, нямам идея какво може да е, освен ако няма някаква неточност. по принцип грешка от този тип възниква ако се извика не където трябва функцията, например в конструктора, или след DoModal.

Отговор
в отговор на vc #4

Re: vc++ Проблем

Za da ti e po-lesno, wzemi go napishi cjaloto twa dejstwie na 2 reda...

Ako si 100% siguren, che funkcija wrushtashta ukazatel kum obekt njama da ti wurne NULL. Samo togawa ja polzwaj po opisanija nachin!

Po wuprosa:
Ako po njakakwa neobjasnima prichina njama kontrol s id = IDC_EDIT1, to shte si gurmi kakwoto i da prawish!
Edna podskazka - Oshte ne e suzdaden edit boxa. Ewentualno towa stawa na po-kusen etap.

Отговор
в отговор на zaphod #5

Re: не бързай с баса

Може и да се е компилирало с остарял resource.h дето не се е генерирало отново от променения ресурсен скрипт например. Виждал съм също и глупости в стил: бе къв е тоя IDC_EDIT1 дето ме плюе за него?!? Я бързо #define IDC_EDIT1 42

Е ще почакаме оригиналния постър да се обади и може би да пусне повече код.

--
"Agile is a mindset, not a set of practices, rules, or tools."
Tom Poppendieck
Отговор