흔히 쓰는 ShowMesage, MessageBox 는 내부의 메시지 폰트와 칼라 등을 조절할 수 없습니다.
하지만 VCL 에서는 이를 맘대로 바꿀수 있도록 CreateMessageDialog 함수를 지원합니다.
아래는 초록색으로 질문 텍스트를 표시하는 예제입니다.
폰트 사이즈도 물론 조절가능하지만 이 경우 다이얼로그 처리 부분에서 텍스트 가로 길이를 제대로 인식하지 못해
모양이 이상하게 나오는 문제가 있습니다. 영어외의 문자에 대한 처리 배려 미숙이죠.
그런데 실행해보면 이상한게 있죠... 바로 알림 소리가 안나는 것입니다.
소리도 직접 내줘야 합니다.
ShowModal() 부르기 전에 MessageBeep( .. ); 를 호출해주면 됩니다.
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TForm *f = CreateMessageDialog("당신은 빌더를 좋아 하십니까?", mtInformation, TMsgDlgButtons() << mbYes << mbNo);
f->Caption = "질문";
f->Font->Color = clGreen;
int ret = f->ShowModal();
delete f;
Button2->Caption = ret==mrYes ? "그렇데" : "아니래";
}
|