![](/img/trans.png)
[英]It is possible to adjust the offset of CS_DROPSHADOW on a Window class?
[英]How to apply CS_DROPSHADOW to a subclass of CDialog
我有一個c ++類, MyDialog
,源自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
以使客戶端覆蓋整個窗口,從而有效地使邊框為零寬度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.