using System; using System.Windows.Forms; using System.Runtime.InteropServices; using Cosmos.BaseFrame; using Cosmos.UserFrame; using Cosmos.Common; using System.Drawing; namespace Cosmos.CommonManager { /// /// frmMessageBox /// public partial class frmMessageBox : Form { private string m_sMessageType; /// /// 메시지 형태(MSG_BOX_TYPE) /// public string PosMessageType { get { return this.m_sMessageType; } set { this.m_sMessageType = value; } } string m_sMessageStr; /// /// 메시지 /// public string PosMessageStr { get { return this.m_sMessageStr; } set { this.m_sMessageStr = value; } } string m_sMessageTitle; /// /// 메시지 타이틀 /// public string PosMessageTitle { get { return this.m_sMessageTitle; } set { this.m_sMessageTitle = value; } } bool m_bSoundContinue = false; /// /// 경고음 계속 출력 여부 /// public bool SoundContinue { get { return this.m_bSoundContinue; } set { this.m_bSoundContinue = value; } } /// /// 경고음 처리 변수 /// public long m_nSoundCount = 0; /// /// 카운트 다운 /// public long m_nCountDown = 9; [DllImport("user32.dll", SetLastError = true)] private static extern bool SetForegroundWindow(IntPtr hWnd); /// frmMessageBox public frmMessageBox() { InitializeComponent(); base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); //this.UpdateStyles(); } private void frmMessageBox_Load(object sender, EventArgs e) { //#17651 해피오더)자동주문 시 표시문구 변경 start //기존 //this.BackgroundImage = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_MSGBOX); //변경 if (m_sMessageType == PosConst.MSG_BOX_TYPE.AutomaticShipment) { this.BackgroundImage = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_800X320); } else { this.BackgroundImage = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_MSGBOX); } //#17651 해피오더)자동주문 시 표시문구 변경 end InitControl(); } private void frmMessageBox_FormClosing(object sender, FormClosingEventArgs e) { tmrSoundOn.Enabled = false; tmrCountDown.Enabled = false; } /// /// 폼 컨트롤 초기화 /// private void InitControl() { try { tmrCountDown.Enabled = false; //#17651 해피오더)자동주문 시 표시문구 변경 start lblMessage2.Visible = false; //#17651 해피오더)자동주문 시 표시문구 변경 end //#17651 해피오더)자동주문 시 표시문구 변경 start btnYes.BringToFront(); btnNo.BringToFront(); btnEsc.BringToFront(); if (m_sMessageType == PosConst.MSG_BOX_TYPE.AutomaticShipment) { base.Width = 800; base.Height = 320; lblMessage.Width = lblTitle.Width; lblMessage.Top = lblTitle.Top + lblTitle.Height; lblMessage.Height = 50;// base.Height - lblMessage.Top - 10; lblMessage2.Width = lblTitle.Width; lblMessage2.Top = lblMessage.Top + lblMessage.Height; lblMessage2.Height = base.Height - (lblMessage.Top + lblMessage.Height) - 20; string sTemp = m_sMessageStr; sTemp = sTemp.Replace("\r\n", "▣").Replace("\r", "▣").Replace("\n", "▣").Replace("\\r\\n", "▣").Replace("\\r", "▣").Replace("\\n", "▣").Trim(); string[] arMsg = null; arMsg = sTemp.Split(new string[] { "▣" }, StringSplitOptions.None); lblMessage.Text = ""; lblMessage2.Text = ""; if (arMsg != null) { lblMessage.Text = arMsg[0]; string TempMsg2 = ""; for (int i = 1; i <= arMsg.Length - 1; i++) { TempMsg2 += arMsg[i] + (char)13 + (char)10; } lblMessage2.Text = TempMsg2; } lblMessage.TextAlign = ContentAlignment.TopLeft; lblMessage2.TextAlign = ContentAlignment.TopLeft; } else { base.Width = 788; base.Height = 212; //lblMessage.Top 56 //lblMessage.Width 772 //lblMessage.Height 101 lblMessage.TextAlign = ContentAlignment.MiddleCenter; } //#17651 해피오더)자동주문 시 표시문구 변경 end CmMessage m_PosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig); string sFont = m_PosConfig.GetMessage("GLOBAL").GetMessageValue("Font"); FormManager.SetFormAllControlFont(this, sFont); long nScreenSizeUser = CmUtil.LongParse(m_PosConfig.GetMessage("GLOBAL").GetMessageValue("ScreenSizeUser")); FormManager.MovePopUpForm(this, false, nScreenSizeUser); lblTitle.BackColor = Color.FromArgb(70, 86, 98); lblTitle.ForeColor = Color.White; //Color.FromArgb(35, 31, 32); //#15945 해피오더 자동주문 상세기능 start btnYes.Size = new System.Drawing.Size(121, 37); btnNo.Size = new System.Drawing.Size(121, 37); btnEsc.Size = new System.Drawing.Size(121, 37); btnYes.Location = new System.Drawing.Point(254, 162); btnNo.Location = new System.Drawing.Point(410, 162); btnEsc.Location = new System.Drawing.Point(333, 162); //#15945 해피오더 자동주문 상세기능 end switch (m_sMessageType) { case PosConst.MSG_BOX_TYPE.CONFIRM: // 확인메시지 //#17651 해피오더)자동주문 시 표시문구 변경 start lblMessage2.Visible = false; //#17651 해피오더)자동주문 시 표시문구 변경 end btnYes.Visible = false; btnNo.Visible = false; btnEsc.Visible = true; btnEsc.Text = CmUtil.IsNull(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0009), "OK"); //확인 break; case PosConst.MSG_BOX_TYPE.QUESTION: // 질문메시지(예,아니오) //#17651 해피오더)자동주문 시 표시문구 변경 start lblMessage2.Visible = false; //#17651 해피오더)자동주문 시 표시문구 변경 end btnEsc.Visible = false; btnYes.Visible = true; btnNo.Visible = true; btnYes.Text = CmUtil.IsNull(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0025), "YES"); btnNo.Text = CmUtil.IsNull(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0026), "NO"); break; case PosConst.MSG_BOX_TYPE.COMPLETE: // 질문메시지(확정,아니오) //#17651 해피오더)자동주문 시 표시문구 변경 start lblMessage2.Visible = false; //#17651 해피오더)자동주문 시 표시문구 변경 end btnEsc.Visible = false; btnYes.Visible = true; btnNo.Visible = true; btnYes.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0028); btnNo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0026); m_nSoundCount = 0; tmrSoundOn.Enabled = true; break; //#15945 해피오더 자동주문 상세기능 start case PosConst.MSG_BOX_TYPE.AutomaticShipment: //#17651 해피오더)자동주문 시 표시문구 변경 start lblMessage2.Visible = true; //#17651 해피오더)자동주문 시 표시문구 변경 end btnEsc.Visible = true; btnYes.Visible = true; btnNo.Visible = true; btnYes.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1170); btnNo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1171); btnEsc.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0040); btnYes.Size = new System.Drawing.Size(280, 37); btnNo.Size = new System.Drawing.Size(280, 37); btnEsc.Size = new System.Drawing.Size(150, 37); int iWidth = btnYes.Width + btnNo.Width + btnEsc.Width; int iTerm = (this.Width - iWidth) / 4; //#17651 해피오더)자동주문 시 표시문구 변경 start //기존 /* btnYes.Location = new System.Drawing.Point(iTerm, 162); btnNo.Location = new System.Drawing.Point((iTerm * 2) + btnYes.Width, 162); btnEsc.Location = new System.Drawing.Point((iTerm * 3) + btnYes.Width + btnNo.Width, 162); */ //변경 btnYes.Location = new System.Drawing.Point(iTerm, 270); btnNo.Location = new System.Drawing.Point((iTerm * 2) + btnYes.Width, 270); btnEsc.Location = new System.Drawing.Point((iTerm * 3) + btnYes.Width + btnNo.Width, 270); //#17651 해피오더)자동주문 시 표시문구 변경 end break; //#15945 해피오더 자동주문 상세기능 end case PosConst.MSG_BOX_TYPE.COUNTDOWN: // 질문메시지(확정,아니오) btnEsc.Visible = false; btnYes.Visible = true; btnNo.Visible = true; //#20180327 영수증 출력 여부 버튼 명칭 변경 start //기존 /* btnYes.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0028); btnNo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0026); */ //변경 btnYes.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1113); btnNo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1114); //#20180327 영수증 출력 여부 버튼 명칭 변경 end m_nSoundCount = 0; m_nCountDown = 9; tmrSoundOn.Enabled = true; tmrCountDown.Interval = 100; tmrCountDown.Enabled = true; break; //#14941 스마트영수증 대상고객 안내기능 도입 start case PosConst.MSG_BOX_TYPE.COUNTDOWNCONFIRM: // 확인메시지 btnYes.Visible = false; btnNo.Visible = false; btnEsc.Visible = true; btnEsc.Text = CmUtil.IsNull(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0009), "OK"); //확인 m_nSoundCount = 0; m_nCountDown = 5; //tmrSoundOn.Enabled = true; tmrCountDown.Interval = 100; tmrCountDown.Enabled = true; break; //#14941 스마트영수증 대상고객 안내기능 도입 end default: // 에러메시지 btnYes.Visible = false; btnNo.Visible = false; btnEsc.Visible = true; btnEsc.Text = CmUtil.IsNull(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0009), "OK"); //확인 m_nSoundCount = 0; tmrSoundOn.Enabled = true; lblTitle.BackColor = Color.DarkOrange; lblTitle.ForeColor = Color.White; break; } SoundOn(); lblTitle.Text = m_sMessageTitle; lblMessage.Text = m_sMessageStr; //UserLog.WriteLogFile(UserCom.LOG_OP, // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) // "Title : '" + m_sMessageTitle + "', Message : '" + m_sMessageStr + "'"); this.TopMost = true; } catch (Exception ex) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Process Exception !!! " + ex.Message); } } /// /// 버튼 입력 처리 /// /// /// private void btnProc_Click(object sender, EventArgs e) { try { if (((Cosmos.UI.CsmButton)sender) == btnEsc) { this.DialogResult = DialogResult.OK; this.Close(); } if (((Cosmos.UI.CsmButton)sender) == btnYes) { this.DialogResult = DialogResult.Yes; this.Close(); } if (((Cosmos.UI.CsmButton)sender) == btnNo) { this.DialogResult = DialogResult.No; this.Close(); } } catch (Exception ex) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Process Exception !!! " + ex.Message); } } /// /// 사운드 처리 /// private void SoundOn() { //try //{ // OperatingSystem os = Environment.OSVersion; // if (os.Platform == PlatformID.Win32NT && os.Version.Major == 5) // WIN XP // Console.Beep(); // else // System.Media.SystemSounds.Beep.Play(); //} //catch { } } /// /// 사운드 타이머 /// /// /// private void tmrSoundOn_Tick(object sender, EventArgs e) { try { tmrSoundOn.Enabled = false; SoundOn(); if (m_nSoundCount <= 20) { if (m_bSoundContinue == false) { m_nSoundCount++; } else { this.TopLevel = true; } tmrSoundOn.Enabled = true; } } catch (Exception ex) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Process Exception !!! " + ex.Message); } } private void lblTitle_MouseMove(object sender, MouseEventArgs e) { //try //{ // var s = sender as Cosmos.UI.CsmLabel; // if (e.Button != System.Windows.Forms.MouseButtons.Left) // return; // if (this.Left + (e.X - ((Point)s.Tag).X) + this.Width / 2 <= 0) return; // if (this.Left + (e.X - ((Point)s.Tag).X) + (this.Width / 3) >= Screen.PrimaryScreen.Bounds.Width) return; // if (this.Top + (e.Y - ((Point)s.Tag).Y) <= lblTitle.Height / 2 * (-1)) return; // if (this.Top + (e.Y - ((Point)s.Tag).Y) + (lblTitle.Height) >= Screen.PrimaryScreen.Bounds.Height) return; // s.Parent.Left = this.Left + (e.X - ((Point)s.Tag).X); // s.Parent.Top = this.Top + (e.Y - ((Point)s.Tag).Y); //} //catch (Exception ex) //{ // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Process Exception !!! " + ex.Message); //} } private void lblTitle_MouseDown(object sender, MouseEventArgs e) { //try //{ // var s = sender as Cosmos.UI.CsmLabel; // s.Tag = new Point(e.X, e.Y); //} //catch (Exception ex) //{ // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Process Exception !!! " + ex.Message); //} } /// /// 카운트 다운 메세지 처리 /// /// /// private void tmrCountDown_Tick(object sender, EventArgs e) { try { tmrCountDown.Enabled = false; tmrCountDown.Interval = 1000; if (m_nCountDown == 0) { //#20180226 영수증 출력 여부 팝업에서 미 선택시 '아니오'로 처리 start //기존 //btnProc_Click(btnYes, null); //변경 btnProc_Click(btnNo, null); //#20180226 영수증 출력 여부 팝업에서 미 선택시 '아니오'로 처리 end } else { m_nCountDown--; lblMessage.Text = string.Format("{0}\n{1} {2}", m_sMessageStr, m_nCountDown, MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0611)); tmrCountDown.Enabled = true; } } catch (Exception ex) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Process Exception !!! " + ex.Message); } } private void frmMessageBox_KeyUp(object sender, KeyEventArgs e) { try { if (e.KeyCode == Keys.Escape) { switch (m_sMessageType) { case PosConst.MSG_BOX_TYPE.CONFIRM: // 확인메시지 btnProc_Click(btnEsc, null); break; case PosConst.MSG_BOX_TYPE.QUESTION: // 질문메시지(예,아니오) btnProc_Click(btnNo, null); break; case PosConst.MSG_BOX_TYPE.COMPLETE: // 질문메시지(확정,아니오) btnProc_Click(btnNo, null); break; case PosConst.MSG_BOX_TYPE.COUNTDOWN: // 질문메시지(확정,아니오) btnProc_Click(btnNo, null); break; //#15945 해피오더 자동주문 상세기능 start case PosConst.MSG_BOX_TYPE.AutomaticShipment: btnProc_Click(btnNo, null); break; //#15945 해피오더 자동주문 상세기능 end default: // 에러메시지 btnProc_Click(btnNo, null); break; } } } catch (Exception ex) { } } } }