在一个对话框中有很多控件(多于50个),它们分成N个组,用一变量(m_nSel)保存最新获得焦点的控件所属的组号。
例如:有30个控件,分成5组,当第一组中的任何一个组件获得焦点时,m_nSel = 1由于控件数过多,不想为每一个控件处理SetFocus函数各位请帮帮我,现在急需解决。
例如:有30个控件,分成5组,当第一组中的任何一个组件获得焦点时,m_nSel = 1由于控件数过多,不想为每一个控件处理SetFocus函数各位请帮帮我,现在急需解决。
解决方案 »
- 请问哪个函数有在对话框显示之后马上调用的
- 无需SMTP POP服务器即刻发送邮件。。。。
- 代码分离的困惑
- 16进制字符串转化的问题。
- 在VC++和C#中,如何实现COM的动态加载?
- ClassWizard的Message Maps页中,Messages选项的问题
- 有偿请各位朋友改段小程序,,希望能给得到你们的帮助
- 在dll中用AFX_EXT_CLASS输出类的部分成员(但不输出整个类),那在调用程序 怎么声明调这些成员呢?
- 苍天啊,大地啊,是那位天使大姐把我搞的这么郁闷啊,散分!!!
- 请教:在"stdafx.h"中的头文件包含问题
- 调查一下现在大家VC C++ 编程方面都买什么书了,有兴趣的列举一下!:)
- 救命呀"对一未命名文件进行查找失败"
在头文件中
begin_message_map()
//手工加入
ON_COMMAND_RANGE(ID_FIRST,ID_END,SetFocus);
//
end_message_map()
OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// TODO: Add your specialized code here and/or call the base class
if ((EN_SETFOCUS == nCode) || //edit box
(CBN_SETFOCUS == nCode) || //combo box
(0x004efff9 == nCode)) //data time picker 这里有点问题
{
SelectItem(nID);
}
return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
这里有个问题,时间控件焦点我不知道是哪个宏,系统用的是WM_NOTIFY消息中的NM_SETFOCUS,
0x004efff9 这个值我是通过查看Call Stack窗口中找到的,不知这个值是不是定值?