ㅋㅋ
자게에 보니
요즘들어 MessageBox를 싫어하는 사람들이 많은것 같네요
VCL의 MessageDlg를 싫어 하는 사람들도 있구요
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=free&no=15904
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=free&no=16327
이유는 잘 모르겠습니다만(???)
TMsgDlgBtn 타입의 선언을 바꿔서 쓰는 방법을 소개해드리겠습니다.
1. Win32API MessageBox의 버튼 타입 선언 바꾸기
먼저 win32api MessageBox 에 쓰는
winuser.h에 선언되어 있죠
#define MB_OK 0x00000000L
#define MB_OKCANCEL 0x00000001L
#define MB_ABORTRETRYIGNORE 0x00000002L
#define MB_YESNOCANCEL 0x00000003L
#define MB_YESNO 0x00000004L
#define MB_RETRYCANCEL 0x00000005L
#if(WINVER >= 0x0500)
#define MB_CANCELTRYCONTINUE 0x00000006L
#endif /* WINVER >= 0x0500 */
뭐 위와같이 선언되어있는데....
아래와 같이 그냥 바꾸시면 됩니다.
#define MB_RODENTS 0x00000000L
#define MB_MOUSE 0x00000001L
#define MB_ABORTRETRYIGNORE 0x00000002L
#define MB_YESNOCANCEL 0x00000003L
#define MB_YESNO 0x00000004L
#define MB_RETRYCANCEL 0x00000005L
#if(WINVER >= 0x0500)
#define MB_CANCELTRYCONTINUE 0x00000006L
#endif /* WINVER >= 0x0500 */
위와같이 고친후에 다음과 같이 사용하면 됩니다.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
MessageBox(0,"잘보이나?","테스트",MB_MOUSE);
MessageBox(0,"잘보이나?","테스트",MB_OK); // 이렇게 쓰면 에러가 남
}
//---------------------------------------------------------------------------
2. VCL의 TMsgDlgBtn 선언 바꾸기
그리고 또 VCL의 MessageDlg도 마찬가지로 수정하셔 쓸수 있습니다.
Dialogs.hpp에 선언되어있는데.. 그걸 수정하시면 됩니다.
//#pragma option push -b-
//enum TMsgDlgBtn { mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp };
//#pragma option pop
//
//typedef Set TMsgDlgButtons;
#pragma option push -b-
enum TMsgDlgBtn { mhYes, mhNo, mhOK, mhCancel, mhAbort, mhRetry, mhIgnore, mhAll, mhNoToAll, mhYesToAll, mhHelp };
#pragma option pop
typedef Set TMsgDlgButtons;
그리고 다음과 같이 쓰면 됩니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
MessageDlg("메세지 잘 보이나요?",mtInformation,TMsgDlgButtons()<<mhYes<<mhNo,0);
//위와같이 고친후에 이렇게쓰면 에러가 납니다.
MessageDlg("메세지 잘 보이나요?",mtInformation,TMsgDlgButtons()<<mbYes<<mbNo,0);
}
//---------------------------------------------------------------------------
그럼...