Solved

combobox focus event

Posted on 2004-04-23
1
369 Views
Last Modified: 2013-11-20
I want to capture the shift+tab event when my combo got  focus, it is ok when I set the combobox DROPDOWNLIST, but when the combobox set to DROPDOWN, I can not capture the event if the focus is hold by the combobox, code like this:

BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
      if( pMsg->message == WM_KEYDOWN )
      {
            if( (pMsg->hwnd == GetDlgItem(IDC_COMBO_FIND)->m_hWnd)
            {
                  AfxMessageBox("IDC_COMBO_FIND-mhWnd");
                  return TRUE;
            }
            else if(GetFocus()==GetDlgItem(IDC_COMBO_FIND) )
            {
                  AfxMessageBox("IDC_COMBO_FIND-getfocus");
            }
            else if(pMsg->hwnd == GetDlgItem(IDC_COMBO_FIND)->GetSafeHwnd())
            {
                  AfxMessageBox("IDC_COMBO_FIND-GetSafeHwnd");
            }
            else
            {
                  //AfxMessageBox("not hit");
            }
      }
      return CDialog::PreTranslateMessage(pMsg);
}
0
Comment
Question by:csdnchen
1 Comment
 
LVL 48

Accepted Solution

by:
AlexFM earned 50 total points
ID: 10906380
Combobox with Dropdown style has child edit box, this is a reason your code doesn't work. You can see this in Spy++.
Find this child edit box using GetWindow or EnumChildWindows, and test for it's HWND in PreTranslateMessage.
You can use also IsChild function to test whether pMsg->hwnd is child of combobox.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

This is to be the first in a series of articles demonstrating the development of a complete windows based application using the MFC classes.  I’ll try to keep each article focused on one (or a couple) of the tasks that one may meet.   Introductio…
Introduction: Dialogs (1) modal - maintaining the database. Continuing from the ninth article about sudoku.   You might have heard of modal and modeless dialogs.  Here with this Sudoku application will we use one of each type: a modal dialog …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now