Reinstalirao sam MSVS, ali izgleda uzalud. Podesio sam da Release verzija programa može da se debuguje i naišao na zanimljivu situaciju :
Naime, kod kojim pravim prozor koji želim da asociram sa nekim od 3 taba napravi prozor čiji je handle validan i tu nema problema, ali posle pravljenja tog prozora ide kod kojim se inicira TC_ITEM struktura taba i u kojoj dobijeni handle treba da pridružim tabu. Ono što se dešava je to da se taj kod iniciranja strukture TC_ITEM uopšte ne izvršava. Stavio sam breakpoint na njega i program se ne zaustavlja na toj liniji. Kod ide nekako ovako :
Code:
// na početku funkcije stoji
TC_ITEM tie;
// zatim ide poziv funkcije koja registruje klasu prozora "ProjectTabWndClass10" i onda ovo
HWND hTab = CreateWindowEx(WS_EX_NOPARENTNOTIFY, "ProjectTabWndClass10", NULL,
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, 0, 0, 0, 0,
hRightTab, NULL, hApp, NULL);
if (hTab == NULL){
dwError = GetLastError();
FatalErrorMsg(dwError, "Create projecttabwnd");
return FALSE;
}
tie.mask = TCIF_TEXT | TCIF_IMAGE | TCIF_PARAM;
tie.iImage = -1;
tie.pszText = "Project";
tie.lParam = reinterpret_cast<LPARAM>(hTab);
if (SendMessage(hRightTab, TCM_INSERTITEM, static_cast<WPARAM>(RT_PROJECT),
reinterpret_cast<LPARAM>(&tie)) != RT_PROJECT){
dwError = GetLastError();
FatalErrorMsg(dwError, "Add projecttab");
return FALSE;
}
Dakle, šta se dešava : On kao da nije povezao cele 4 linije koda u moj program. Ponavljam, to nije slučaj sa debug verzijom, a nisam čačkao po podešavanjima i stavljao neke optimizacije programa.
Samo da dodam da je RT_PROJECT definisana konstanta 0, a dwError je globalna promenljiva tipa DWORD.
[Ovu poruku je menjao stargazer dana 19.04.2006. u 19:05 GMT+1]