Как сделать диалог подвижным? - PullRequest
0 голосов
/ 01 марта 2011

Я начинаю с программирования на win32.

Я создал свой первый диалог, но не могу перетащить его мышью;он просто остается там, где он есть.Почему?

Это его функция proc:

static bool CALLBACK ChangeColumnProc(HWND dialog, uint32 message, WPARAM wParam, LPARAM lParam)
{
    static ColumnInfo *column = NULL;

    switch(message)
    {
        case WM_INITDIALOG:
            column = (ColumnInfo *)lParam;
            InitializeDialog(dialog, column);
            return true;
        case WM_COMMAND:
            switch(LOWORD(wParam))
            {
                case IDOK:
                    SaveChanges(dialog, column);
                    break;
                case IDCANCEL:
                    EndDialog(dialog, lParam);
                    break;
                default:
                    return false;
            }

            return true;
    }

    return false;
}

Вот как я ее создаю:

if(DialogBoxParam(StartupInfo.Instance, MAKEINTRESOURCE(IDD_CHANGE_COLUMN), StartupInfo.Window, (DLGPROC)ChangeColumnProc, (LPARAM)&column) == IDOK)

Что я делаю не так?

1 Ответ

1 голос
/ 01 марта 2011

Тип возврата диалоговой процедуры - INT_PTR, а не bool. Вернуть (INT_PTR) FALSE, если вы не обрабатываете сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...