Sha*_*aul 0 c++ winapi tabs tabcontrol win32gui
我的项目是带有选项卡控件的简单WIN32对话框。在某些情况下,我想阻止用户更改选项卡。MS文档非常简单 -
返回 TRUE 以防止更改选择,或返回 FALSE 以允许更改选择。
然而,这根本行不通!
代码:
case WM_NOTIFY:
if (((LPNMHDR)lParam)->idFrom == IDC_DEVTABS)
{
if (((LPNMHDR)lParam)->code == TCN_SELCHANGING)
return (INT_PTR)TRUE;
//return (INT_PTR)OnSelChanging(hDlgTab);
if (((LPNMHDR)lParam)->code == TCN_SELCHANGE)
OnSelChanged(hDlgTab);
return (INT_PTR)TRUE;
}Run Code Online (Sandbox Code Playgroud)
我可以看到我的父对话框收到了消息,但选项卡无论如何都在改变。知道如何防止选项卡更改吗?
如果您的控件位于对话框中(正如我所假设的那样),您需要通过DWLP_MSGRESULT窗口数据返回值。
SetWindowLongPtr(hWndDlg, DWLP_MSGRESULT, TRUE);
return TRUE;
Run Code Online (Sandbox Code Playgroud)
对话过程的返回值向对话管理器指示该消息是否已被处理。消息的实际返回值通过 提供DWLP_MSGRESULT。
与往常一样,请参阅Raymond 的博客以获取对此的详细讨论。
| 归档时间: |
|
| 查看次数: |
753 次 |
| 最近记录: |