Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. WM_KILLFOCUS problem

WM_KILLFOCUS problem

Scheduled Pinned Locked Moved C / C++ / MFC
questionhelp
22 Posts 4 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S SandipG

    did you manage to get it working it or not can you paste some code snippets for the same.

    Regards, Sandip.

    D Offline
    D Offline
    danginkgo
    wrote on last edited by
    #13

    In the documentation I found that the wParam for WM_KILLFOCUS is the window handler for the window that receive focus, so I'll get this message in the WindowProc function if I click on the main window. So, I can't use this message, because I want to unregister the hotkeys when the main window loses focus, not immediately before it gains focus. Is it wright what I wrote?

    danginkgo

    modified on Tuesday, June 24, 2008 7:31 AM

    1 Reply Last reply
    0
    • S SandipG

      are you getting the same values in both cases you mentioned in your previous reply.

      Regards, Sandip.

      D Offline
      D Offline
      danginkgo
      wrote on last edited by
      #14

      yes, the same values

      danginkgo

      1 Reply Last reply
      0
      • S SandipG

        did you manage to get it working it or not can you paste some code snippets for the same.

        Regards, Sandip.

        D Offline
        D Offline
        danginkgo
        wrote on last edited by
        #15

        The problem is I don't get any message in WindowProc if the window loses focus.

        danginkgo

        S 1 Reply Last reply
        0
        • D danginkgo

          The problem is I don't get any message in WindowProc if the window loses focus.

          danginkgo

          S Offline
          S Offline
          SandipG
          wrote on last edited by
          #16

          Hi I tried it in a sample application 1> Main window with two edit controls. 2> In WM_LBUTTONDOWN i called SetFocus(hWnd); I noticed is that if i dont call setfocus explicitly i dont get the WM_SETFOCUS notification. and moreover when i switch between the two edit control i dont get any notification. may be you can try something like following. i dont see any need of using GetWindowLong. case WM_LBUTTONDOWN: SetFocus(hWnd); break; case WM_KILLFOCUS: unregisterkeys; break; case WM_SETFOCUS: registerkeys; break; I hope it helps.

          Regards, Sandip.

          D 2 Replies Last reply
          0
          • S SandipG

            Hi I tried it in a sample application 1> Main window with two edit controls. 2> In WM_LBUTTONDOWN i called SetFocus(hWnd); I noticed is that if i dont call setfocus explicitly i dont get the WM_SETFOCUS notification. and moreover when i switch between the two edit control i dont get any notification. may be you can try something like following. i dont see any need of using GetWindowLong. case WM_LBUTTONDOWN: SetFocus(hWnd); break; case WM_KILLFOCUS: unregisterkeys; break; case WM_SETFOCUS: registerkeys; break; I hope it helps.

            Regards, Sandip.

            D Offline
            D Offline
            danginkgo
            wrote on last edited by
            #17

            My code is exactly like what you wrote. The problem is I don't get the WM_KILLFOCUS message only when I return to the app window. If the focus is on the app window and I go to other window then I don't get any message.

            danginkgo

            S 1 Reply Last reply
            0
            • D danginkgo

              My code is exactly like what you wrote. The problem is I don't get the WM_KILLFOCUS message only when I return to the app window. If the focus is on the app window and I go to other window then I don't get any message.

              danginkgo

              S Offline
              S Offline
              SandipG
              wrote on last edited by
              #18

              No when i go from app window to edit control i get the WM_KILLFOCUS notifiction. also when i call SetFocus() i do get WM_SETFOCUS notification.

              Regards, Sandip.

              1 Reply Last reply
              0
              • S SandipG

                Hi I tried it in a sample application 1> Main window with two edit controls. 2> In WM_LBUTTONDOWN i called SetFocus(hWnd); I noticed is that if i dont call setfocus explicitly i dont get the WM_SETFOCUS notification. and moreover when i switch between the two edit control i dont get any notification. may be you can try something like following. i dont see any need of using GetWindowLong. case WM_LBUTTONDOWN: SetFocus(hWnd); break; case WM_KILLFOCUS: unregisterkeys; break; case WM_SETFOCUS: registerkeys; break; I hope it helps.

                Regards, Sandip.

                D Offline
                D Offline
                danginkgo
                wrote on last edited by
                #19

                It works now. It seems that the problem was that I called MessageBox() function in my code with wrong HWND. That massed up the messages. I took it out of the code and it works fine. Thank you very much for your help.

                danginkgo

                S 1 Reply Last reply
                0
                • D danginkgo

                  It works now. It seems that the problem was that I called MessageBox() function in my code with wrong HWND. That massed up the messages. I took it out of the code and it works fine. Thank you very much for your help.

                  danginkgo

                  S Offline
                  S Offline
                  SandipG
                  wrote on last edited by
                  #20

                  Good its working now You are welcome :).

                  Regards, Sandip.

                  1 Reply Last reply
                  0
                  • D danginkgo

                    In the main window callback function I get the WM_KILLFOCUS message when I click on the window, and only then I get the WM_SETFOCUS message. Is that OK? I thought that WM_KILLFOCUS message is sent to a window immediatly before it looses focus. I want to register some values when the window has keyboard focus and unregister the values when the window looses focus. How can I do that?

                    danginkgo

                    D Offline
                    D Offline
                    David Crow
                    wrote on last edited by
                    #21

                    danginkgo wrote:

                    I want to register some values when the window has keyboard focus and unregister the values when the window looses focus.

                    It sounds like you need to use WM_ACTIVATEAPP instead.

                    "Love people and use things, not love things and use people." - Unknown

                    "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                    D 1 Reply Last reply
                    0
                    • D David Crow

                      danginkgo wrote:

                      I want to register some values when the window has keyboard focus and unregister the values when the window looses focus.

                      It sounds like you need to use WM_ACTIVATEAPP instead.

                      "Love people and use things, not love things and use people." - Unknown

                      "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                      D Offline
                      D Offline
                      danginkgo
                      wrote on last edited by
                      #22

                      I tried using WM_ACTIVATEAPP message, but I don't get it in the main WindowProc function. Do you have any suggestions?

                      danginkgo

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups