我开始使用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)
我做错了什么?
答案 0 :(得分:1)
对话框过程的返回类型是INT_PTR,而不是bool。如果您不处理该消息,则返回(INT_PTR)FALSE。