Prev: Adobe 7.0 crash
Next: Assert Error
From: Jonathan Wood on 11 Sep 2006 20:50 Ah... Sounds like you got it then. Good. -- Jonathan Wood SoftCircuits Programming http://www.softcircuits.com "Steve Russell" <srussell(a)removethisinnernet.net> wrote in message news:eEB9JXf1GHA.1252(a)TK2MSFTNGP04.phx.gbl... > Combining 0xFFF0 with nID has straightened everything out. > > if( (nID & 0xFFF0) == SC_RESTORE) > --------------- > > "Steve Russell" <srussell(a)removethisinnernet.net> wrote in message > news:uikufLf1GHA.4108(a)TK2MSFTNGP04.phx.gbl... >>I can say this: In the handler, I added a TRACE of nID. The Restore box >>delivers 61728 (F120), which is SC_RESTORE, of course. But doubleclicking >>on the title bar gives me 61730 (F122), which I do not recognize. When >>the window is in restored size and I maximize it, the first click on the >>title bar gives me 61458 (F012); . the second reads 61490 (F032). >> >> However, Spy++ displays the WM_SYSCOMMAND message with SC_RESTORE, when I >> doubleclick the title bar. >> -------------- >> "Jonathan Wood" <jwood(a)softcircuits.com> wrote in message >> news:%233GDxPd1GHA.4228(a)TK2MSFTNGP06.phx.gbl... >>> My guess is that double clicking the title bar would produce the same >>> message. >>> >>> Looks like you implemented a handler. Are you saying it was not called >>> when the title bar was double clicked? >>> >>> -- >>> Jonathan Wood >>> SoftCircuits Programming >>> http://www.softcircuits.com >>> >>> "Steve Russell" <srussell(a)removethisinnernet.net> wrote in message >>> news:O9QRW7c1GHA.2516(a)TK2MSFTNGP06.phx.gbl... >>>>I am getting acquainted with handling some WM_SYSCOMMAND messages and >>>>would appreciate it if someone would tell me how to handle the restore >>>>message upon double-clicking the title bar. How does that differ from >>>>clicking the Restore box? >>>> >>>> void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) >>>> { >>>> if(nID == SC_RESTORE) >>>> ::Beep(500,100); >>>> >>>> CFrameWnd::OnSysCommand(nID, lParam); >>>> } >>>> >>>> >>> >>> >> >> > >
From: Jonathan Wood on 11 Sep 2006 20:49 Steve, >I can say this: In the handler, I added a TRACE of nID. The Restore box >delivers 61728 (F120), which is SC_RESTORE, of course. But doubleclicking >on the title bar gives me 61730 (F122), which I do not recognize. When the >window is in restored size and I maximize it, the first click on the title >bar gives me 61458 (F012); . the second reads 61490 (F032). > > However, Spy++ displays the WM_SYSCOMMAND message with SC_RESTORE, when I > doubleclick the title bar. This is the behavior I would expect. I would make absolutely certain this is not happening before moving on. -- Jonathan Wood SoftCircuits Programming http://www.softcircuits.com
From: Joseph M. Newcomer on 11 Sep 2006 23:09 No, he was testing the wrong value. It should have been if( (nID & ~0xF) == SC_RESTORE) joe On Mon, 11 Sep 2006 12:19:08 -0700, "Tom Serface" <tserface(a)msn.com> wrote: >My guess is that it sends a SC_RESTORE if the windows is maximized and an >SC_MAXIMIZE if it is not maximized. > >Tom > >"Steve Russell" <srussell(a)removethisinnernet.net> wrote in message >news:O9QRW7c1GHA.2516(a)TK2MSFTNGP06.phx.gbl... >>I am getting acquainted with handling some WM_SYSCOMMAND messages and would >>appreciate it if someone would tell me how to handle the restore message >>upon double-clicking the title bar. How does that differ from clicking the >>Restore box? >> >> void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) >> { >> if(nID == SC_RESTORE) >> ::Beep(500,100); >> >> CFrameWnd::OnSysCommand(nID, lParam); >> } >> >> > Joseph M. Newcomer [MVP] email: newcomer(a)flounder.com Web: http://www.flounder.com MVP Tips: http://www.flounder.com/mvp_tips.htm
From: Joseph M. Newcomer on 11 Sep 2006 23:08 The rule is that ;you must ignore the low-order 4 bits of the WM_SYSCOMMAND message, so the correct test is always something of the form switch(nID & ~0xF) so F122 is a perfectly valid representation of SC_RESTORE. Check the "remarks" section on OnSysCommand. joe On Mon, 11 Sep 2006 18:37:45 -0400, "Steve Russell" <srussell(a)removethisinnernet.net> wrote: >I can say this: In the handler, I added a TRACE of nID. The Restore box >delivers 61728 (F120), which is SC_RESTORE, of course. But doubleclicking >on the title bar gives me 61730 (F122), which I do not recognize. When the >window is in restored size and I maximize it, the first click on the title >bar gives me 61458 (F012); . the second reads 61490 (F032). > >However, Spy++ displays the WM_SYSCOMMAND message with SC_RESTORE, when I >doubleclick the title bar. >-------------- >"Jonathan Wood" <jwood(a)softcircuits.com> wrote in message >news:%233GDxPd1GHA.4228(a)TK2MSFTNGP06.phx.gbl... >> My guess is that double clicking the title bar would produce the same >> message. >> >> Looks like you implemented a handler. Are you saying it was not called >> when the title bar was double clicked? >> >> -- >> Jonathan Wood >> SoftCircuits Programming >> http://www.softcircuits.com >> >> "Steve Russell" <srussell(a)removethisinnernet.net> wrote in message >> news:O9QRW7c1GHA.2516(a)TK2MSFTNGP06.phx.gbl... >>>I am getting acquainted with handling some WM_SYSCOMMAND messages and >>>would appreciate it if someone would tell me how to handle the restore >>>message upon double-clicking the title bar. How does that differ from >>>clicking the Restore box? >>> >>> void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) >>> { >>> if(nID == SC_RESTORE) >>> ::Beep(500,100); >>> >>> CFrameWnd::OnSysCommand(nID, lParam); >>> } >>> >>> >> >> > Joseph M. Newcomer [MVP] email: newcomer(a)flounder.com Web: http://www.flounder.com MVP Tips: http://www.flounder.com/mvp_tips.htm
From: Jonathan Wood on 12 Sep 2006 12:35
Not sure why you started that sentence with "no". Turns out, both me and Tom were correct that this notification IS sent when window is restored by having the title bar clicked. So, that should've been a "yes". Looks like we just both failed to recall the issue with the low bits (which I'm sure Tom's dealt with before as have I). -- Jonathan Wood SoftCircuits Programming http://www.softcircuits.com "Joseph M. Newcomer" <newcomer(a)flounder.com> wrote in message news:m59cg2h454dltrqfb9lgtn91tomq38iidc(a)4ax.com... > No, he was testing the wrong value. It should have been > > if( (nID & ~0xF) == SC_RESTORE) > > joe > > On Mon, 11 Sep 2006 12:19:08 -0700, "Tom Serface" <tserface(a)msn.com> > wrote: > >>My guess is that it sends a SC_RESTORE if the windows is maximized and an >>SC_MAXIMIZE if it is not maximized. >> >>Tom >> >>"Steve Russell" <srussell(a)removethisinnernet.net> wrote in message >>news:O9QRW7c1GHA.2516(a)TK2MSFTNGP06.phx.gbl... >>>I am getting acquainted with handling some WM_SYSCOMMAND messages and >>>would >>>appreciate it if someone would tell me how to handle the restore message >>>upon double-clicking the title bar. How does that differ from clicking >>>the >>>Restore box? >>> >>> void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) >>> { >>> if(nID == SC_RESTORE) >>> ::Beep(500,100); >>> >>> CFrameWnd::OnSysCommand(nID, lParam); >>> } >>> >>> >> > Joseph M. Newcomer [MVP] > email: newcomer(a)flounder.com > Web: http://www.flounder.com > MVP Tips: http://www.flounder.com/mvp_tips.htm |