我有一个通用颜色对话框,我想在按下菜单时激活它。 不幸的是,每次我按下该项目时,窗口都会失去焦点,好像会弹出一个对话框,但对话框永远不会出现。
我现在使用的代码如下:
case ID_TOOL_CHOOSECOLOR:
//show colour dialog
ChooseColor(&cc);
我已经像这样初始化了我的 CHOOSECOLOR 结构:
cc.lStructSize = sizeof (CHOOSECOLOR) ;
cc.hwndOwner = NULL ;
cc.hInstance = NULL ;
cc.rgbResult = RGB (0x80, 0x80, 0x80) ;
cc.lpCustColors = crCustColor ;
cc.Flags = CC_RGBINIT | CC_FULLOPEN ;
cc.lCustData = 0 ;
cc.lpfnHook = NULL ;
cc.lpTemplateName = NULL ;
奇怪的是,只有在我按下“ALT”键(而且只有 alt 键)后,对话框才会出现。有什么建议吗?
顺便说一下,我正在尝试在 MDI 文档中执行此操作。
谢谢
最佳答案
我能看到的唯一问题是您没有为对话框指定所有者。这可能会导致对话框显示在主窗口后面。将主窗口的句柄指定为对话框的所有者。
在 Window Features page on MSDN 上阅读有关窗口所有权的更多信息.
关于c++ - 常见对话框 Win32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914668/