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
[3262] Re:WM_DISPLAYCHANGE 윈도우 메시지 처리에 대해
전종욱 [] 4775 읽음    2000-04-05 00:00
임문환 님이 쓰신 글 :
: 안녕하십니까?
:
: 몇 일 전에 문의드렸던 아래아 한글 DDE 문제는 해결했습니다.
:
: 이 번에는 다른 질문을 드리고자 합니다.
:
: 모니터의 해상도가 변경된 경우 발생하는 WM_DISPLAYCHANGE 메시지에 반응하는 이밴트 처리기를 아래와 같이 구현하였습니다.
:
: 그런데 이상하게도 프로그램을 실행해둔 상태에서 제어판의 디스플레이에서 해상도를 변경하면
: 해당 이밴트 처리기인 WMDisplayChange가 호출되지 않고 Form1 내의 다른 메서드(이름은 완전히 다름)가 호출됩니다.
:
: 호출되는 메서드의 이름은 WMDisplayChange와는 전혀 다른 것으로서 코딩시 잘 못 입력할 수도 없는 그런 것입니다.
: 한편 잘못 호출된 메서드조차도 제대로 기능을 하지 않습니다.
: 무슨 문제가 있는 것일까요?
:
: 참고로 WM_NCHITTEST  메시지에 반응하는 WMNCHitTest는 제대로 작동합니다.
:
: 헤더 파일의 내용:
: class TForm1 : public TForm
: {
: __published:   

: private:
: void __fastcall WMNCHitTest(TMessage &Msg);
: void __fastcall WMDisplayChange(TMessage &Msg);
:
: public:
:   BEGIN_MESSAGE_MAP
:    MESSAGE_HANDLER(WM_NCHITTEST,TMessage,WMNCHitTest)
:    MESSAGE_HANDLER(WM_DISPLAYCHANGE,TMessage,WMDisplayChange)
:   END_MESSAGE_MAP(TForm)
: };
:
:
: 유닛 파일의 내용:
: void __fastcall TForm1::WMNCHitTest(TMessage &Msg)
: {
:  if(GetAsyncKeyState(VK_LBUTTON)<0)
:   Msg.Result = HTCAPTION;
:  else
:   Msg.Result=HTCLIENT;
: }
:
: //---------------------------------------------------------------------------
: void __fastcall TForm1::WMDisplayChange(TMessage &Msg)
: {
:   윈도우 및 컨트롤들의 위치와 크기를 조절하는 코드들
: }
:
: 끝.

제가 그대로 코딩해서 실행해 봤는데 저는 문제없이 잘 돌아가던데요..

혹시 원인이 다른 곳에 있지 않을까요?

아니면 BEGIN_MESSAGE_MAP 부분에서

MESSAGE_HANDLER(WM_DISPLAYCHANGE, TMessage, WMDisplayChange)를

MESSAGE_HANDLER(WM_DISPLAYCHANGE, TWMDisplayChange, WMDisplayChange)로 바꾸고

함수의 인자형도 바꿔보시겠어요?

제가 별로 아는 것도 없는데 주절거렸나봅니다.....^^



+ -

관련 글 리스트
3260 WM_DISPLAYCHANGE 윈도우 메시지 처리에 대해 임문환 4681 2000/04/04
3263     Re:WM_DISPLAYCHANGE 윈도우 메시지 처리에 대해 박지훈.임프 4574 2000/04/05
3262     Re:WM_DISPLAYCHANGE 윈도우 메시지 처리에 대해 전종욱 4775 2000/04/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.