DialogBoxParam and GetOpenFileName
DialogBoxParam and GetOpenFileName
首先,这是我的配置:
VS2010/Debug/C++ Win32 Project/Vista Home Premium
通过窗口(CreateWindow
)中的按钮(CreateWindow
)调用GetOpenFileName
不会有问题:打开对话框工作正常,我可以点击、导航到另一个文件夹等
现在,我将CreateWindow
替换为DialogBoxParam
(应该在后台调用CreateWindow
),使用相同的(DLGPROC)WndProc
并调用相同的GetOpenFileName
。在这里,"打开"对话框的行为很奇怪:看起来只有双击鼠标才能工作(=填充ofn.lpstrFile
并关闭"打开"对话)。无法单击"打开"answers"取消"按钮,也无法导航。
以前有人经历过这种情况吗?任何已知的"打开"对话框"冻结"的原因。是否属于父母(ofn.hwndOwner = hwnd; ofn.hwndOwner = NULL;
)给出了同样的问题。
谢谢N
您编写了
使用相同的(DLGPROC)WndProc
这是你的错误。对话框过程和窗口过程不是一回事。它们遵循不同的规则,如果你在应该遵循DlgProc规则的时候遵循WndProc规则,那么坏事就会发生。
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 位阵列上的快速AND运算
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- Gurobi GRBModel and GRBmodel in C++
- std::visit and std::variant usage
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- Directx12 and keystrokes
- different between int **arr =new int [ n]; and int a[i][j]?
- C++ getenv and setenv
- Inference pytorch C++ with alexnet and cv::imread image
- Visual Studio 2019 C++ and std::filesystem
- 保证逻辑 AND 表达式中的函数调用
- python ctypes and C++ pointers
- C++ const char with .begin() and .end()
- Threads with Classes and std::packaged_task
- DialogBoxParam and GetOpenFileName