Remove the shadow effect on windows WINAPI
Is there a way I can remove the drop shadow effect on a window in my program?
I'm using the Win32 API under VC++, Platform: Windows 10.
I know I can use SystemParametersInfo()
with SPI_SETDROPSHADOW
to set it as FALSE
but I was wondering if there is an option to only affect a single window as this affects all windows?
This shows the shadow that shall be removed (no CS_DROPSHADOW used):
This shows the shadow that is visible if CS_DROPSHADOW
is used:
SystemParametersInfo()
with SPI_SETDROPSHADOW
turns off both shadows, but there does not seem to be a windows style or windows class style to disable the shadow that is drawn when CS_DROPSHADOW
is not used.
c++ windows winapi shadow
add a comment |
Is there a way I can remove the drop shadow effect on a window in my program?
I'm using the Win32 API under VC++, Platform: Windows 10.
I know I can use SystemParametersInfo()
with SPI_SETDROPSHADOW
to set it as FALSE
but I was wondering if there is an option to only affect a single window as this affects all windows?
This shows the shadow that shall be removed (no CS_DROPSHADOW used):
This shows the shadow that is visible if CS_DROPSHADOW
is used:
SystemParametersInfo()
with SPI_SETDROPSHADOW
turns off both shadows, but there does not seem to be a windows style or windows class style to disable the shadow that is drawn when CS_DROPSHADOW
is not used.
c++ windows winapi shadow
1
You could set up a WinEvent hook, and remove theCS_DROPSHADOW
class style (SetClassLongPtr) on creation. I believe this changes all windows of that class in the calling process, though. Better than a system-global solution, but not fine-grained enough to change a single window.
– IInspectable
Jul 22 '16 at 16:54
1
@IInspectable I just tried this and it seems that CS_DROPSHADOW and SPI_SETDROPSHADOW are both refering to different shadow effects, CS_DROPSHADOW turned on/off something completely different that isn't a problem. so no luck :/
– Luke Bourne
Jul 22 '16 at 17:17
2
Hmm, noCS_DROPSHADOW
is controlled bySPI_SETDROPSHADOW
. The latter globally enables/disables the former, which is set for individual window classes. Notice that I said individual window classes, not windows. This affects all windows of a particular class. That may not be a problem, though. Are you creating these windows yourself? If so, just register a different class. We need more details about what problem you're trying to solve and what your exact situation is.
– Cody Gray♦
Jul 22 '16 at 17:56
5
CS_DROPSHADOW
gives you the shadow effect on e.g. a popup menu. To me it sounds like you want to turn off the shadow that every overlapped window has on Windows 10. That's something the DWM does itself, I'm not sure if that can be disabled.
– Jonathan Potter
Jul 22 '16 at 20:11
add a comment |
Is there a way I can remove the drop shadow effect on a window in my program?
I'm using the Win32 API under VC++, Platform: Windows 10.
I know I can use SystemParametersInfo()
with SPI_SETDROPSHADOW
to set it as FALSE
but I was wondering if there is an option to only affect a single window as this affects all windows?
This shows the shadow that shall be removed (no CS_DROPSHADOW used):
This shows the shadow that is visible if CS_DROPSHADOW
is used:
SystemParametersInfo()
with SPI_SETDROPSHADOW
turns off both shadows, but there does not seem to be a windows style or windows class style to disable the shadow that is drawn when CS_DROPSHADOW
is not used.
c++ windows winapi shadow
Is there a way I can remove the drop shadow effect on a window in my program?
I'm using the Win32 API under VC++, Platform: Windows 10.
I know I can use SystemParametersInfo()
with SPI_SETDROPSHADOW
to set it as FALSE
but I was wondering if there is an option to only affect a single window as this affects all windows?
This shows the shadow that shall be removed (no CS_DROPSHADOW used):
This shows the shadow that is visible if CS_DROPSHADOW
is used:
SystemParametersInfo()
with SPI_SETDROPSHADOW
turns off both shadows, but there does not seem to be a windows style or windows class style to disable the shadow that is drawn when CS_DROPSHADOW
is not used.
c++ windows winapi shadow
c++ windows winapi shadow
edited Nov 21 '18 at 21:45
Werner Henze
10.7k72853
10.7k72853
asked Jul 22 '16 at 16:28
Luke BourneLuke Bourne
1188
1188
1
You could set up a WinEvent hook, and remove theCS_DROPSHADOW
class style (SetClassLongPtr) on creation. I believe this changes all windows of that class in the calling process, though. Better than a system-global solution, but not fine-grained enough to change a single window.
– IInspectable
Jul 22 '16 at 16:54
1
@IInspectable I just tried this and it seems that CS_DROPSHADOW and SPI_SETDROPSHADOW are both refering to different shadow effects, CS_DROPSHADOW turned on/off something completely different that isn't a problem. so no luck :/
– Luke Bourne
Jul 22 '16 at 17:17
2
Hmm, noCS_DROPSHADOW
is controlled bySPI_SETDROPSHADOW
. The latter globally enables/disables the former, which is set for individual window classes. Notice that I said individual window classes, not windows. This affects all windows of a particular class. That may not be a problem, though. Are you creating these windows yourself? If so, just register a different class. We need more details about what problem you're trying to solve and what your exact situation is.
– Cody Gray♦
Jul 22 '16 at 17:56
5
CS_DROPSHADOW
gives you the shadow effect on e.g. a popup menu. To me it sounds like you want to turn off the shadow that every overlapped window has on Windows 10. That's something the DWM does itself, I'm not sure if that can be disabled.
– Jonathan Potter
Jul 22 '16 at 20:11
add a comment |
1
You could set up a WinEvent hook, and remove theCS_DROPSHADOW
class style (SetClassLongPtr) on creation. I believe this changes all windows of that class in the calling process, though. Better than a system-global solution, but not fine-grained enough to change a single window.
– IInspectable
Jul 22 '16 at 16:54
1
@IInspectable I just tried this and it seems that CS_DROPSHADOW and SPI_SETDROPSHADOW are both refering to different shadow effects, CS_DROPSHADOW turned on/off something completely different that isn't a problem. so no luck :/
– Luke Bourne
Jul 22 '16 at 17:17
2
Hmm, noCS_DROPSHADOW
is controlled bySPI_SETDROPSHADOW
. The latter globally enables/disables the former, which is set for individual window classes. Notice that I said individual window classes, not windows. This affects all windows of a particular class. That may not be a problem, though. Are you creating these windows yourself? If so, just register a different class. We need more details about what problem you're trying to solve and what your exact situation is.
– Cody Gray♦
Jul 22 '16 at 17:56
5
CS_DROPSHADOW
gives you the shadow effect on e.g. a popup menu. To me it sounds like you want to turn off the shadow that every overlapped window has on Windows 10. That's something the DWM does itself, I'm not sure if that can be disabled.
– Jonathan Potter
Jul 22 '16 at 20:11
1
1
You could set up a WinEvent hook, and remove the
CS_DROPSHADOW
class style (SetClassLongPtr) on creation. I believe this changes all windows of that class in the calling process, though. Better than a system-global solution, but not fine-grained enough to change a single window.– IInspectable
Jul 22 '16 at 16:54
You could set up a WinEvent hook, and remove the
CS_DROPSHADOW
class style (SetClassLongPtr) on creation. I believe this changes all windows of that class in the calling process, though. Better than a system-global solution, but not fine-grained enough to change a single window.– IInspectable
Jul 22 '16 at 16:54
1
1
@IInspectable I just tried this and it seems that CS_DROPSHADOW and SPI_SETDROPSHADOW are both refering to different shadow effects, CS_DROPSHADOW turned on/off something completely different that isn't a problem. so no luck :/
– Luke Bourne
Jul 22 '16 at 17:17
@IInspectable I just tried this and it seems that CS_DROPSHADOW and SPI_SETDROPSHADOW are both refering to different shadow effects, CS_DROPSHADOW turned on/off something completely different that isn't a problem. so no luck :/
– Luke Bourne
Jul 22 '16 at 17:17
2
2
Hmm, no
CS_DROPSHADOW
is controlled by SPI_SETDROPSHADOW
. The latter globally enables/disables the former, which is set for individual window classes. Notice that I said individual window classes, not windows. This affects all windows of a particular class. That may not be a problem, though. Are you creating these windows yourself? If so, just register a different class. We need more details about what problem you're trying to solve and what your exact situation is.– Cody Gray♦
Jul 22 '16 at 17:56
Hmm, no
CS_DROPSHADOW
is controlled by SPI_SETDROPSHADOW
. The latter globally enables/disables the former, which is set for individual window classes. Notice that I said individual window classes, not windows. This affects all windows of a particular class. That may not be a problem, though. Are you creating these windows yourself? If so, just register a different class. We need more details about what problem you're trying to solve and what your exact situation is.– Cody Gray♦
Jul 22 '16 at 17:56
5
5
CS_DROPSHADOW
gives you the shadow effect on e.g. a popup menu. To me it sounds like you want to turn off the shadow that every overlapped window has on Windows 10. That's something the DWM does itself, I'm not sure if that can be disabled.– Jonathan Potter
Jul 22 '16 at 20:11
CS_DROPSHADOW
gives you the shadow effect on e.g. a popup menu. To me it sounds like you want to turn off the shadow that every overlapped window has on Windows 10. That's something the DWM does itself, I'm not sure if that can be disabled.– Jonathan Potter
Jul 22 '16 at 20:11
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f38531327%2fremove-the-shadow-effect-on-windows-winapi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f38531327%2fremove-the-shadow-effect-on-windows-winapi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
You could set up a WinEvent hook, and remove the
CS_DROPSHADOW
class style (SetClassLongPtr) on creation. I believe this changes all windows of that class in the calling process, though. Better than a system-global solution, but not fine-grained enough to change a single window.– IInspectable
Jul 22 '16 at 16:54
1
@IInspectable I just tried this and it seems that CS_DROPSHADOW and SPI_SETDROPSHADOW are both refering to different shadow effects, CS_DROPSHADOW turned on/off something completely different that isn't a problem. so no luck :/
– Luke Bourne
Jul 22 '16 at 17:17
2
Hmm, no
CS_DROPSHADOW
is controlled bySPI_SETDROPSHADOW
. The latter globally enables/disables the former, which is set for individual window classes. Notice that I said individual window classes, not windows. This affects all windows of a particular class. That may not be a problem, though. Are you creating these windows yourself? If so, just register a different class. We need more details about what problem you're trying to solve and what your exact situation is.– Cody Gray♦
Jul 22 '16 at 17:56
5
CS_DROPSHADOW
gives you the shadow effect on e.g. a popup menu. To me it sounds like you want to turn off the shadow that every overlapped window has on Windows 10. That's something the DWM does itself, I'm not sure if that can be disabled.– Jonathan Potter
Jul 22 '16 at 20:11