C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[26647] Re:Btn 버튼에서 이미지 변경하기
박지훈.임프 [cbuilder] 1075 읽음    2003-08-08 03:20
바로 아래의 다른 분의 질문에 대한 답변에서 메시지맵을 이용한 방법을 설명하면서 그 경우에 왜
메시지맵을 써야 하는지 설명했습니다. CM_MOUSEENTER와 CM_MOUSELEAVE 메시지는 VCL 컴포넌트들
사이에서만 주고받는 메시지이기 때문에 Application->OnMessage에는 걸리지 않습니다.

단, 버튼처럼 윈도우 핸들을 가지는 윈도우컨트롤의 경우라면 윈도우 프로시저를 바꿔치우는 방법을 쓸
수 있습니다. (윈도우 핸들이 없는 컨트롤의 경우에는 윈도우 프로시저가 아예 없으니 쓸 수 없죠)
기본적인 경험은 되시는 듯 하니, 세세히 설명을 드리기보다는 낙시하는 법을 알려드리지요.

GetWindowLong/SetWindowLong API 함수를 보시면, 윈도우 프로시저를 갈아치울 수 있습니다.
주의하실 것은,
1. 새로 갈아치운 윈도우 프로시저에서 필요한 메시지만 처리하고 나머지는 원래의 윈도우 프로시저를
호출하여 넘긴다.
2. 더이상 필요가 없어지면(예를 들어 해당 버튼이 파괴되었다든지) 반드시 SetWindowLong 함수를
호출하여 원래의 윈도우 프로시저로 다시 세팅해야 합니다.

그럼...


플그램 님이 쓰신 글 :
: BEGIN_MESSAGE_MAP 방식을 사용하지 않고 마우스 핸들에 따라 이미지를 지정해주는 방식이 있나 궁급합니다.
:
: void __fastcall TForm1::BitBtn1MouseDown(TObject *Sender,
:       TMouseButton Button, TShiftState Shift, int X, int Y)
: {
:   BitBtn1->Glyph......여기 다음에 뭔가 이미지 상대경로를지정해주는 방법이 있나 알고 싶습니다.
: }
:
: 감사합니다.

+ -

관련 글 리스트
26614 Btn 버튼에서 이미지 변경하기 플그램 863 2003/08/06
33006     Re:Btn 버튼에서 이미지 변경하기 Builder MySelf 1041 2003/08/07
33005     Re:Btn 버튼에서 이미지 변경하기 수야!╋ 987 2003/08/06
26647     Re:Btn 버튼에서 이미지 변경하기 박지훈.임프 1075 2003/08/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.