MyDialog
我有一个派生自的 c++ 类,CDialog
我在其中删除了 Windows 框架,从而删除了 Windows 生成的阴影。
我想再次添加阴影,而不添加框架。我发现有一种CS_DROPSHADOW
可以应用的类风格。但我找不到如何应用它。
我找到了一种方法ModifyStyle
,但它只修改WS_...
样式,而不是CS_...
样式。
如何应用课堂风格CS_DROPSHADOW
?
MyDialog
我有一个派生自的 c++ 类,CDialog
我在其中删除了 Windows 框架,从而删除了 Windows 生成的阴影。
我想再次添加阴影,而不添加框架。我发现有一种CS_DROPSHADOW
可以应用的类风格。但我找不到如何应用它。
我找到了一种方法ModifyStyle
,但它只修改WS_...
样式,而不是CS_...
样式。
如何应用课堂风格CS_DROPSHADOW
?
我的同事帮我注册了一个班级风格是这样的:
WNDCLASS wndClass;
GetClassInfo(NULL, WC_DIALOG, &wndClass);
wndClass.style |= CS_DROPSHADOW;
wndClass.lpszClassName = TEXT("MyDialog");
RegisterClass(&wndClass);
WC_DIALOG
常规课程在哪里CDialog
。
然后在定义我的对话框的资源文件中使用此类:
IDD_MYDIALOGEX 54, 22, 264, 95
STYLE DS_SETFONT | DS_CENTER | WS_POPUP
CLASS "MyDialog"
FONT 8, "Microsoft Sans Serif", 0, 0, 0x0
BEGIN
// Contents ...
END
这增加了一个阴影,这很好。但不是我正在寻找的航空阴影。
欢迎更多答案!
您可能能够保留框架样式,但响应让WM_NCCALCSIZE
客户端覆盖整个窗口,从而有效地使边框为零宽度。