Я изо всех сил пытаюсь создать диалоговое окно. Первой проблемой было сделать видимым само диалоговое окно. При отображении диалогового окна оно отображало только элементы управления внутри диалогового окна, но само диалоговое окно было невидимым, но все еще можно было нажать кнопку закрытия. Я исправил это, добавив собственное имя класса в свойства диалоговых окон и зарегистрировав класс. Кто-нибудь знает в чем именно проблема? Моему коллеге не нужно было явно регистрировать класс и добавлять его в свойства диалоговых окон.
Но моя текущая проблема заключается в следующем:
У меня есть эта функция обратного вызова:
static BOOL CALLBACK DialogProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
MessageBox(NULL, L"init dialog", L"Message Box", NULL);
break;
case WM_CLOSE:
DestroyWindow(hwnd);
MessageBox(NULL, L"close dialog", L"Message Box", NULL);
break;
case WM_DESTROY:
MessageBox(NULL, L"destroying dialog", L"Message Box", NULL);
break;
}
return TRUE;
}
и это открытие нового диалогового окна:
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
HWND hWnd;
TCHAR szTitle[MAX_LOADSTRING] = TEXT("This is the DialogBox Title"); // Titelleistentext
TCHAR szWindowClass[MAX_LOADSTRING] = TEXT("MyDialogBoxClass"); // Klassenname des Hauptfensters
g_hInst = hInstance; // Instanzenhandle in der globalen Variablen speichern
if (!MyRegisterClass(hInstance, szWindowClass))
{
return FALSE;
}
hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG_FTPHELPER), NULL, DialogProc);
if (!hWnd)
{
return FALSE;
}
SetWindowText(hWnd, szTitle);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
if (g_hWndCommandBar)
{
CommandBar_Show(g_hWndCommandBar, TRUE);
}
return TRUE;
}
При отображении нового диалогового окна оно не вызывает функцию «DialogPro c» ни разу, никогда, меня тошнит ...
Кто-нибудь знает ответ на эту проблему?
С наилучшими пожеланиями и спасибо за помощь!