Почему мое дочернее создание окна терпит неудачу?
У меня есть созданный MDI, и он работает до тех пор, пока я не нажму на меню новый файл и не получу это сообщение об ошибке, которое я написал в окне сообщения.. что создание нового дочернего MDI не удалось это та часть, где компилятор говорит Local mcs. szClass "не может получить доступ к памяти по адресу 0xcdbaabcd"
HWND CreateNewMDIChild(HWND hMDIClient) { MDICREATESTRUCT mcs; HWND hChild; mcs.szTitle = "Act 1"; mcs.szClass = ChildClass; mcs.hOwner = GetModuleHandle(NULL); mcs.x = mcs.cx = CW_USEDEFAULT; mcs.y = mcs.cy = CW_USEDEFAULT; mcs.style = MDIS_ALLCHILDSTYLES; hChild = (HWND)SendMessage(hMDIClient, WM_MDICREATE, 0, (LONG)&mcs); if(!hChild) { MessageBox(hMDIClient, "Act 1 MDI child creation failed !", "Error", MB_ICONERROR | MB_OK); } return hChild; }
Что я уже пробовал:
Я ничего не пробовал, потому что компилятор не дает мне никаких ошибок ..
и если весь код нужен, я могу загрузить его прямо сейчас...
Ну я действительно спросил кого то и сказал мне что это будет проблемой:
hChild = (HWND)SendMessage(hMDIClient, WM_MDICREATE, 0, (LONG)&mcs);
Это значит, что я сделал плохой бросок...?!
Как это будет выглядеть?
hChild = (HWND)SendMessage(hMDIClient, WM_MDICREATE, 0, reinterpret_cast<LPARAM>(&mcs));
Richard MacCutchan
"компилятор говорит, что Local mcs. szClass "не может получить доступ к памяти по адресу 0xcdbaabcd""
Это не сообщение компилятора, а исключение среды выполнения. Где именно это происходит и что такое "детский класс"?