Я использую этот код InputBox (используя шаблоны диалогов) -> http://www.codeproject.com/Articles/13330/Using-Dialog-Templates-to-create-an-InputBox-in-C
и если я сначала вызываю функцию MessageBox (..), все работает нормально, но без них приложение зависает! (там должен быть какой-то инициализирующий код)!
На самом деле мне не нужен MessageBox (), я просто хочу использовать этот InputBox -> как я могу это реализовать?
Мои шаги:
CWin32InputBox::InputBox(_T("Input Dialog"), _T("Please enter password"), buf, 100, false, NULL);
(wchar_t buf [100] = {0};)Мой код:
void ClassA::SomeFunction()
{
// ...
MessageBoxA(NULL, "TEST!", "TEST", MB_ICONINFORMATION); // with this ALL OK
wchar_t buf[100] = {0};
CWin32InputBox::InputBox(_T("Input Dialog"), _T("Please enter password"), buf, 100, false, NULL);
// ...
}
если приложение зависает именно эта строка в CWin32InputBox::InputBoxEx(...)
INT_PTR r = ::DialogBoxIndirectParam(param->hInstance, dlgTemplate, param->hwndOwner, (DLGPROC)DlgProc, (LPARAM)&inputbox);
Спасибо
Я решил это, создав фиктивное окно прямо перед вызовом InputBox!
void ClassA::SomeFunction()
{
// ...
// create a dummy window
HWND dummyHWND = ::CreateWindowA("STATIC","dummy",WS_VISIBLE,0,0,100,100,NULL,NULL,NULL,NULL);
wchar_t buf[100] = {0};
CWin32InputBox::InputBox(_T("Input Dialog"), _T("Please enter KeyCard password"), buf, 100, false, dummyHWND);
// ...
}