如何使对话框移动?

时间:2011-03-01 01:19:39

标签: c++ windows winapi

我开始使用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 个答案:

答案 0 :(得分:1)

对话框过程的返回类型是INT_PTR,而不是bool。如果您不处理该消息,则返回(INT_PTR)FALSE。