빌더를 안깔아서 VS의 Spy++만 보고 WM_SYSCOMMAND가 아니면 WM_SIZE겠구나..했는데 아니네요
빌더 깔아서 보니,
void __fastcall TForm1::WndProc(Messages::TMessage &Msg)
{
if(Msg.Msg==WM_SYSCOMMAND )
{
mmm="WM_SYSCOMMAND ";
mmm+=Msg.WParam;
Memo1->Lines->Add(mmm);
if( Msg.WParam==SC_MINIMIZE)
{
Memo1->Lines->Add("SC_MINIMIZE");
}
}
TForm::WndProc(Msg);
}
WParam값이 0xF020(61472)로 잘 들어 오네요.
우선 저렇게 확인해 보니 전 잘 되네요 -.-....
혹시나 다른 값이 들어 오나 하고 찾아보니
/*
* System Menu Command Values
*/
#define SC_SIZE 0xF000
#define SC_MOVE 0xF010
#define SC_MINIMIZE 0xF020
사용하신 조건이 맞습니다.
조안 님이 쓰신 글 :
: 확인이 늦었네요 ㅜㅜ
:
: WM_SIZE 로도 안들어옵니다..
: 최소화 할시에 는 WM_SIZE 가 아니고요
:
: 다시 이전크기로 복구 하면 WM_SIZE 를 지나네요
: 최대화 할때도 WM_SIZE인데.. 왜 최소화만 아닐까요 ;;
:
: 김진호.불사새 님이 쓰신 글 :
: : WM_SIZE
: : 의
: : SIZE_MINIMIZED
: :
: : 이걸로 넘어 오지 않나요?
: :
: :
: :
: : 조안 님이 쓰신 글 :
: : :
: : : void __fastcall TfrmMain::WndProc(TMessage &Msg)
: : : {
: : :
: : : if(Msg.Msg==WM_SYSCOMMAND )
: : : {
: : : if( Msg.WParam==SC_MINIMIZE)
: : : {
: : : //To do
: : : }
: : : }
: : : }
: : :
: : : 이런식으로 코딩을 했는데요
: : :
: : : 메인폼을 Minimize 시켜도 To do 로 들어오질 않네요
: : :
: : : Minimize 할때 Msg 값이 어떤게 들어오는지 알고싶은데
: : : wndproc 가 워낙에 계속 발생하다보니 정확히 무슨값이 들어왔는지 찍어볼수가없네요
: : : 어떻게 하면 좋을까요???
: : :
: : : ShowMessage를 하면 minimize 버튼 눌러보기도 전에 showmessage가 무한정 떠버리고..
: : : editbox에 표시하자니.. minimize 할때 값을 정확히 확인할수가없네요-
: : : 부탁드려요
|