|
옙 맞습니다.
그리고 아래 함수에서
__fastcall CVclProperty::CVclProperty(_in TComponent* Owner) : TStringGrid(Owner)
{
Visible = true;
OnDrawCell = (TDrawCellEvent)&onDrawCell; //이 함수는 잘 동작합니다.
cbBox = new TComboBox(this);
cbBox->Parent = this;
cbBox->Visible = true;
cbBox->OnSelect = onComboSelect; //이 함수는 동작 하지 않습니다.
}
로 수정합니다.
장성호 님이 쓰신 글 :
: 올려주신 소스만으로는 원인을 알 기 힘들것 같은데요
:
: ComboBox는 언제 Visible=true해주죠?
:
: OnSelect 이벤트가 발생하는 상황은?
: 1. ComboBox에 Focus가 있는 상태에서
: 2. ComboBox의 DropDown화살표를 클릭하여 DropDown폼이 뜬 상황에서
: 3. 아이템을 다른것을 선택할경우에..
:
: 발생합니다.
:
: 그런 상황이 맞는지요?
:
: 최형준 님이 쓰신 글 :
: : StringGrid를 상속받아서 클래스를 하나 만들었습니다.
: : 그 클래스 안에 맴버 변수로 ComboBox를 하나 동적으로 생성해서 사용하고 있는데요
: : (당연히 StringGrid를 상속받은 클래스도 동적으로 생성해서 사용하구요)
: : 이 ComboBox에 이벤트가 발생이 안되는것 같습니다.
: :
: : class CVclProperty : public TStringGrid
: : {
: : public:
: : __fastcall CVclProperty(_in TComponent* Owner);
: :
: : __published:
: : void __fastcall onDrawCell(_in TObject *Sender, _in int ACol, _in int ARow,
: : _in TRect &Rect, _in TGridDrawState State);
: :
: : TComboBox *cbBox;
: : void __fastcall onComboSelect(TObject *Sender);
: : };
: :
: : ---구현부---
: : __fastcall CVclProperty::CVclProperty(_in TComponent* Owner) : TStringGrid(Owner)
: : {
: : OnDrawCell = (TDrawCellEvent)&onDrawCell; //이 함수는 잘 동작합니다.
: :
: : cbBox = new TComboBox(this);
: : cbBox->Parent = this;
: : cbBox->Visible = false;
: : cbBox->OnSelect = onComboSelect; //이 함수는 동작 하지 않습니다.
: : }
: :
: : void __fastcall CVclProperty::onDrawCell(_in TObject *Sender, _in int ACol, _in int ARow,
: : _in TRect &Rect, _in TGridDrawState State)
: : {
: : //<--이곳으로 들어옵니다.
: : }
: :
: : void __fastcall CVclProperty::onComboSelect(TObject *Sender)
: : {
: : MessageBox(NULL, "", "xxx", MB_OK); //이곳으로 들어오지 않습니다.
: : }
: :
: :
: :
: : 고수님들의 도움이 필요합니다... 도와주세요~~~
|