最近做了一个程序使用到HOTKEY控件。
在ClassWizard 中HOTKEY控件只有一个NM_Outofmemory可用。
请问这个nm_Outofmemory是做什么用的?我想要在改变HOTKEY控件内容的时候,检测新热键是否已被注册过了。一般该怎么做?

解决方案 »

  1.   

    直接注册,如果热键被注册过会返回FALSE,调用GetLastError来判断是否是已注册。
      

  2.   

    是这样的。我在程序里要用到多个HOTKEY(用户自定义的),为了避免用户自己定义的HOTKEY冲突。在设置时就要求自动的检测是否有重复的设置项目,并即时提示。
    如果所有的热键都不重复则使用RegisterHotKey(m_hWnd,iNum,Modifiers[0],HotVKC[0]);依次注册。问题是我不能等到最后注册时出错了,再调用GetLastError来判断是否已注册。这样的程序本身就有问题。我不能让用户去判断这种错误。
    所以我觉得该在用户自定义设置热键时,程序自动检测热键是否重复指定了。(我要问的就是这个方法。现在我不知道如何判断热键是否被更改了。我不能设一个定时器不停的判断所有的热键是否有重复。我希望当有热键更改时,再判断热键是否重复。现在在ClassWizard 中HOTKEY控件只有一个NM_Outofmemory可用。而这个NM_Outofmemory不是HOTKEY控件改变时的响应函数。)我该怎么办??
      

  3.   

    等答案。
    难道我要改用EDIT控件,然后用BOOL PreTranslateMessage(MSG* pMsg)拦截键盘输入吗?