我的项目是带有选项卡控件的简单WIN32对话框。在某些情况下,我希望防止用户更改选项卡。文档女士很直率-
返回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;
}
我可以看到我的父对话框收到了消息,但是选项卡正在发生变化。知道我怎么能阻止标签的改变吗?
发布于 2015-02-05 02:17:00
如果您的控件在对话框中,正如我假设的那样,您需要通过DWLP_MSGRESULT
窗口数据返回该值。
SetWindowLongPtr(hWndDlg, DWLP_MSGRESULT, TRUE);
return TRUE;
对话框过程的返回值向对话框管理器指示消息是否已被处理。消息的实际返回值是通过DWLP_MSGRESULT
提供的。
与往常一样,有关这方面的良好讨论,请参见雷蒙德的博客。
https://stackoverflow.com/questions/28339190
复制相似问题