Remove the shadow effect on windows WINAPI












7















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):
CS_DROPSHADOW not used



This shows the shadow that is visible if CS_DROPSHADOW is used:
CS_DROPSHADOW 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.










share|improve this question




















  • 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 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





    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


















7















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):
CS_DROPSHADOW not used



This shows the shadow that is visible if CS_DROPSHADOW is used:
CS_DROPSHADOW 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.










share|improve this question




















  • 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 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





    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
















7












7








7








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):
CS_DROPSHADOW not used



This shows the shadow that is visible if CS_DROPSHADOW is used:
CS_DROPSHADOW 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.










share|improve this question
















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):
CS_DROPSHADOW not used



This shows the shadow that is visible if CS_DROPSHADOW is used:
CS_DROPSHADOW 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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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 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 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





    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





    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 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





    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














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
});


}
});














draft saved

draft discarded


















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
















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

"Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

Alcedinidae

Origin of the phrase “under your belt”?