直接重载WndProc过程就可以了。

解决方案 »

  1.   

    我用过wm_syskeydown了,不行的。
    在一个类中重载WndProc过程是否合理?
      

  2.   

    没有关系啦。只是最好Inherited一下,让缺省处理运行。
      

  3.   

    WM_SYSKEYDOWN 表示按下了ALT加另外的健—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  4.   

    mshawk(憨憨) WndProc也不行,和我原来的方法效果一样
      

  5.   

    protected
      procedure WndProc(var mes: TMessage); override;这样都不行?不可能的,这样一定可以的。你的申明是不是不对?
      

  6.   

    没有输入焦点的窗口是得不到WM_KEYDOWN事件的.
    在应用中调用MyCtrl1(假设叫这个名).SetFocus或设置为Form的ActiveControl.