如何获取CComboBox DropDown 后下的ListBox 的指针?

leecyi 2005-02-03 11:18:50
如题!
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengqinggao 2005-02-03
  • 打赏
  • 举报
回复
是一个API函数,可以这样使用:
::GetComboBoxInfo(m_pYourCombo->m_hWnd, &cbi);

直接在MSDN的索引中输入这个函数名就可以看到其用法
leecyi 2005-02-03
  • 打赏
  • 举报
回复
有这个函数吗?
GetComboBoxInfo
chuanke 2005-02-03
  • 打赏
  • 举报
回复
CComboBox * pcb = (CComboBox *)GetDlgItem(IDC_COMBOBOX);
ASSERT _VALID(pcb );
fengqinggao 2005-02-03
  • 打赏
  • 举报
回复
楼上的方法好,学习!
DentistryDoctor 2005-02-03
  • 打赏
  • 举报
回复
COMBOBOXINFO cbi={sizeof(cbi)};
m_cbTest.GetComboBoxInfo(&cbi);
CListBox* pList=reintertpret_cast<CListBox*>(CWnd::FromHandle(cbi.hwndList));

/*
typedef struct tagCOMBOBOXINFO {
DWORD cbSize;
RECT rcItem;
RECT rcButton;
DWORD stateButton;
HWND hwndCombo;
HWND hwndItem;
HWND hwndList;
} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO;
*/
fengqinggao 2005-02-03
  • 打赏
  • 举报
回复
既然处于DropDown状态,就应该有焦点吧,用GetFocus获取当前焦点所在窗口,这是估计得分两种情况:
1、如果焦点在其编辑框中,用GetNextWindow()应该能获取ListBox;
2、如果焦点已经在下拉列表中,获取的直接就应该是ListBox了;

没有测试,你可以尝试一下
fengqinggao 2005-02-03
  • 打赏
  • 举报
回复
我的是2000年7月的,你的不会比我的还老吧,呵呵
leecyi 2005-02-03
  • 打赏
  • 举报
回复
我在MSDN里搜不到这个函数的信息,版本不对吗?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧