PSN_QUERYCANCEL不关闭属性表
PSN_QUERYCANCEL does not close Property Sheet
我创建了一个属性表,每个选项卡页共享相同的pfnDlgProc
。在pfnDlgProc
中,我有这个代码:
switch (msg) {
case WM_NOTIFY:
nmhdr = (NMHDR*)lParam;
switch (nmhdr->code) {
case PSN_QUERYCANCEL:
printf("PSN_QUERYCANCELn");
SetWindowLong(nmhdr->hwndFrom, DWL_MSGRESULT, FALSE);
return TRUE;
}
break;
...
}
当我点击属性表上的取消按钮时,打印PSN_QUERYCANCEL
,但属性表没有关闭。为什么会这样?我还需要做些什么来让它关闭吗?我知道我可以将DestroyWindow(nmhdr->hwndFrom)
添加到处理程序,但这是正确的方法吗?
您正在设置发送通知的窗口句柄上的DWL_MSGRESULT,但不一定是您正在处理WM_NOTIFY的对话框的窗口。而不是使用nmhdr->hwndFrom窗口句柄,尝试使用传递给pfnDlgProc的HWND。
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- C++概念:如何使用'concept'检查模板化结构的属性?
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 通过指向指针数组的指针访问子类的属性
- MSVC是否支持C++11样式的属性而不是__declspec
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 类的C++属性似乎已重新初始化
- Qt Quick-如何仅从c++代码与qml属性交互
- 用概念检查属性的类型
- C++如何将同一类的实例作为属性
- 按多个属性排序
- 主函数参数的属性
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- C++删除未使用的类属性会导致 std::logic_error
- 无法使用 SWIG 在 Python 中实例化C++类(获取属性错误)
- 使用内存地址访问结构的属性值
- C++调用具有 *this 属性的单个帮助程序函数
- C++ 在堆栈中包含多态属性的类对象存储
- C++ 命名参数习惯用语 - 未设置字符串属性
- 使用 CTRP 时,是否访问访问父构造函数 UB 中的子属性?