우선 헤더파일엔 아래처럼 되어있습니다
typedef void (__closure *KeyInput)(System::TObject *Sender, Word &Key);
class PACKAGE TPangyas : public TCustomControl
{
private:
KeyInput FKeyDown;
protected:
public:
__fastcall TPangyas(TComponent* Owner);
MESSAGE void __fastcall VNKey_Downs(TMessage &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(CM_APPKEYDOWN,TMessage,VNKey_Downs);
END_MESSAGE_MAP(TCustomControl)
__published:
__property KeyInput OnKeyDowns = {read=FKeyDown,write=FKeyDown};
};
그리거 cpp파일엔 이렇게 되어있습니다
static inline void ValidCtrCheck(TPangyas *)
{
new TPangyas(NULL);
}
//---------------------------------------------------------------------------
__fastcall TPangyas::TPangyas(TComponent* Owner)
: TCustomControl(Owner)
{
}
//---------------------------------------------------------------------------
namespace Pangyas
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TPangyas)};
RegisterComponents("Standard", classes, 0);
}
}
//---------------------------------------------------------------------------
MESSAGE void __fastcall TPangyas::VNKey_Downs(TMessage &Message)
{
if(FKeyDown)
FKeyDown(this,Message.WParamLo);
이렇게 해뒀습니다
그런대해보니 동작이 되지 않습니다
CN_KEYDOWN 메시지로해봐도그렇고요
CM_MOUSEENTER 로 해보니 잘되더군요
근데 키입력이 CN_KEYDOWN이 맞는건가요? 키입력 이벤트는 어떤걸써야되는지요
위소스에서 잘못된 부분은 어떤것인지 잘못된거면
어떻게 수정해야되는지 알려주세요
자꾸 이것만 건드리고있는데 당췌 안되네요
|