0

首先,这是我的配置:

VS2010/Debug/C++ Win32 Project/Vista Home Premium

通过窗口GetOpenFileName(_CreateWindowCreateWindow

现在,我将 my 替换CreateWindow为 a DialogBoxParam(应该CreateWindow在幕后调用),使用相同的(DLGPROC)WndProc并调用相同的GetOpenFileName. 在这里,“打开”对话框的行为很奇怪:看起来只有鼠标双击才有效(= 填充ofn.lpstrFile并关闭“打开”对话框)。无法单击“打开”和“取消”按钮,也无法导航。

有没有人经历过这种情况?“打开”对话框“冻结”的任何已知原因。是否属于父母 ( ofn.hwndOwner = hwnd; ofn.hwndOwner = NULL;) 给出了同样的问题。

谢谢 N

4

1 回答 1

2

你写了

使用相同的 (DLGPROC)WndProc

那是你的错误。对话框过程和窗口过程不是一回事。它们遵循不同的规则,如果你在应该遵循 DlgProc 规则的时候遵循 WndProc 规则,那么就会发生不好的事情。

于 2012-01-09T02:32:23.220 回答