📄 dlg_map.cpp
字号:
// 恔搙
if (pWnd->m_hWnd == GetDlgItem(IDC_STC_SND_01+i)->m_hWnd) {
pDC->SetBkColor(Bak_Color);
pDC->SetTextColor(Txt_Color);
return m_BakColor;
}
// 恔搙(0~9)
if (pWnd->m_hWnd == GetDlgItem(IDC_STC_MAG_01+i)->m_hWnd) {
pDC->SetBkColor(Bak_Color);
pDC->SetTextColor(Mag_clr_tbl[Map_DbData[i].SinKai]);
return m_BakColor;
}
// 儊僢僙乕僕
if (pWnd->m_hWnd == GetDlgItem(IDC_STC_ERR_01+i)->m_hWnd) {
pDC->SetBkColor(Bak_Color);
pDC->SetTextColor(Msg_Color);
return m_BakColor;
}
}
// 懠偺僥僉僗僩
for (i=0; i<8; i++) {
if (pWnd->m_hWnd == GetDlgItem(nID[i])->m_hWnd) {
pDC->SetBkColor(Bak_Color);
pColor = Txt_Color;
if (nID[i] == IDC_STC_TITLE_02) {
if (Dtb_SmpPoi != 0) { // 抧恔敪惗拞?
pColor = Msg_Color;
}
}
pDC->SetTextColor(pColor);
return m_BakColor;
}
}
return hbr;
}
/*=====================================
@p << 夋柺僟僽儖僋儕僢僋 >>
=====================================*/
void CDlg_Map::OnLButtonDblClk(UINT nFlags, CPoint point)
{
int ch;
CDlg_Err pDlg;
if (Dtb_SmpPoi == 0){
for (ch=0;ch<MAX_CH;ch++){
if (RcvSttDat[ch].Stt_Kms || RcvSttDat[ch].Stt_Sys){
if (Stt_msg_pnt[ch].left < point.x && point.x < Stt_msg_pnt[ch].right){
if (Stt_msg_pnt[ch].top < point.y && point.y < Stt_msg_pnt[ch].bottom){
Dsp_err_stt[0] = RcvSttDat[ch].Stt_Kms;
Dsp_err_stt[1] = RcvSttDat[ch].Stt_Sys;
pDlg.DoModal();
}
}
}
}
}
CDialog::OnLButtonDblClk(nFlags, point);
}
/*=====================================
@p << 俷俲儃僞儞 >>
=====================================*/
void CDlg_Map::OnOK()
{
return;
}
/*=====================================
@p << 僉儍儞僙儖儃僞儞 >>
=====================================*/
void CDlg_Map::OnCancel()
{
return;
}
/*=====================================
@p << 儊僯儏乕儃僞儞 >>
=====================================*/
void CDlg_Map::OnBtnMenu()
{
DspReqStack(DSP_MENU);
}
/*=====================================
@p << 堦棗昞帵儃僞儞 >>
=====================================*/
void CDlg_Map::OnBtnMag()
{
DspReqStack(DSP_MAG);
}
/*=====================================
m:17-Dec-1998
@p << 奺僥僉僗僩昞帵埵抲曄峏 >>
堷悢丗 側偟
栠抣丗 側偟
// 27:HY
=====================================*/
void CDlg_Map::DispPosSet()
{
CWnd* pWnd;
CRect pRect;
int i, j;
int mid[2] = {
IDC_STC_COL_01,
IDC_STC_KAI_01
};
int tid[5] = {
IDC_STC_BAK_01,
IDC_STC_PNT_01,
IDC_STC_SND_01,
IDC_STC_MAG_01,
IDC_STC_ERR_01
};
int etc_id[8] = {
IDC_STC_TBAK_01,
IDC_STC_TBAK_02,
IDC_STC_TITLE_01,
IDC_STC_TITLE_02,
IDC_STC_TITLE_03,
IDC_STC_DATE,
IDC_STC_TIME,
IDC_STC_SINDO
};
//-----( 恔搙怓 & 奒 埵抲曄峏 )-----
for (i=0; i<2; i++) {
for (j=1; j<MAX_SINKAI; j++) {
pWnd = GetDlgItem(mid[i]+j);
if (pWnd != NULL) {
pRect.left = Mag_pos_tbl[i].sx;
pRect.right = Mag_pos_tbl[i].sx + Mag_pos_tbl[i].wx;
pRect.top = Mag_pos_tbl[i].sy + (MAG_STP_Y * (MAX_SINKAI-1-j));
pRect.bottom = Mag_pos_tbl[i].hy + pRect.top;
pWnd->MoveWindow(pRect, TRUE);
pWnd->ShowWindow(SW_SHOW);
}
}
}
//-----( 奺僥僉僗僩昞帵埵抲曄峏 )-----
for (i=0; i<MAX_CH; i++) {
for (j=0; j<5; j++) {
if (Pnt_pos_tbl[i][0] == -1) break;
pWnd = GetDlgItem(tid[j]+i);
if (pWnd != NULL) {
pRect.left = Pnt_pos_tbl[i][0] + Txt_pos_tbl[j].sx;
pRect.right = pRect.left + Txt_pos_tbl[j].wx;
pRect.top = Pnt_pos_tbl[i][1] + Txt_pos_tbl[j].sy;
pRect.bottom = pRect.top + Txt_pos_tbl[j].hy;
pWnd->MoveWindow(pRect, TRUE);
pWnd->ShowWindow(SW_SHOW);
if (j == 4) {
Stt_msg_pnt[i] = pRect;
}
}
}
}
//-----( 俤俿俠僥僉僗僩昞帵埵抲曄峏 )-----
for (i=0; i<8; i++) {
pWnd = GetDlgItem(etc_id[i]);
if (pWnd != NULL) {
pRect.left = Etc_pos_tbl[i].sx;
pRect.right = Etc_pos_tbl[i].sx + Etc_pos_tbl[i].wx;
pRect.top = Etc_pos_tbl[i].sy;
pRect.bottom = Etc_pos_tbl[i].sy + Etc_pos_tbl[i].hy;
pWnd->MoveWindow(pRect, TRUE);
pWnd->ShowWindow(SW_SHOW);
}
}
}
/*-------------------------------------
m:24-Jan-1999
@p << 娤應揰僨乕僞昞帵 >>
-------------------------------------*/
void CDlg_Map::MagDataDisp(int ch)
{
CDC* pDC;
int x, y, pnt, dat;
#if !HY_KAI // 18-Feb-2004 夵憿
int a, b;
#endif
char buf[10];
pnt = Ch2Pnt[ch]; // 僠儍僱儖傪億僀儞僩斣崋偵曄姺偡傞僥乕僽儖
if (pnt == 2){
pnt = 2;
}
pDC = GetDC();
pDC->SelectObject(&m_MagFont);
x = Pnt_pos_tbl[pnt][0] + Txt_pos_tbl[3].sx;
y = Pnt_pos_tbl[pnt][1] + Txt_pos_tbl[3].sy;
pDC->SetBkColor(Bak_Color);
pDC->SetTextColor(RGB(0, 0, 0));
// 恔搙
dat = Map_DbData[pnt].SinKai;
#if ATSUGI
if (dat < 0 || dat > 10){
dat = 10;
}
#else
if (dat < 0 || dat > 12){
dat = 13;
}
#endif
// ver 1.30
if (dat >= BrinkKai && Print_req == 0 && Print_num == 0) {
if (MagFric) {
sprintf(buf, "%s", Mag_txt_tbl[dat]);
}
else {
#if HY_KAI // 18-Feb-2004 夵憿
sprintf(buf, "%s", Mag_txt_tbl[dat]);
#else
sprintf(buf, " ");
#endif
}
}
else {
sprintf(buf, "%s", Mag_txt_tbl[dat]);
}
if (ch == MAX_CH-1) {
MagFric = 1 - MagFric;
}
// Mark@002
pDC->SetBkMode(OPAQUE); // 僶僢僋僇儔乕曄峏偡傞
pDC->TextOut(x, y-1, " ");
pDC->TextOut(x, y+1, " ");
pDC->SetBkMode(TRANSPARENT); // 僶僢僋僇儔乕曄峏偟側偄
// #if !HY_KAI // 18-Feb-2004 夵憿
int a, b;
for (a=-1;a<2;a++){
for (b=-1;b<2;b++){
pDC->TextOut(x+a, y+b, buf);
}
}
// #endif
pDC->SetTextColor(Mag_clr_tbl[Map_DbData[pnt].SinKai]);
pDC->TextOut(x, y, buf);
ReleaseDC(pDC); // 26-Jun-2k
}
/*-------------------------------------
m:27-Dec-1998
@p << 娤應揰僨乕僞昞帵 >>
// 27:HY
-------------------------------------*/
void CDlg_Map::EntDataDisp(int ch)
{
char buf[64], bf2[64];
int pnt, c, err;
int max_ch;
// 娤應揰柤
pnt = Ch2Pnt[ch]; // 僠儍僱儖傪億僀儞僩斣崋偵曄姺偡傞僥乕僽儖
SetDlgItemText(IDC_STC_PNT_01+pnt, AdrEntDat[ch].AdrName);
// 忬懺僗僥乕僞僗
if (RcvSttDat[ch].Stt_Sys){ // 忬懺 32bit(撪晹)
err = 2;
}
else if (RcvSttDat[ch].Stt_Kms){ // 忬懺 32bit(嫮恔寁)
err = 1;
}
else{
err = 0;
}
SetDlgItemText(IDC_STC_ERR_01+pnt, Map_stt_msg[err]);
// MAX check
max_ch = 0;
for (c=1;c<MAX_CH;c++){
if (Map_DbData[max_ch].SinLev < Map_DbData[c].SinLev){
max_ch = c;
}
}
if (max_ch == ch){ // 昞帵 ch == MAX
// 擔晅帪崗
if (Map_DbData[ch].R_dt.yer){
sprintf(buf, "%4d擭%2d寧%2d擔",
Map_DbData[ch].R_dt.yer,
Map_DbData[ch].R_dt.mon,
Map_DbData[ch].R_dt.day
);
sprintf(bf2, "%2d帪%2d暘%2d昩",
Map_DbData[ch].R_dt.hor,
Map_DbData[ch].R_dt.min,
Map_DbData[ch].R_dt.sec
);
}
else{
sprintf(buf, "----擭--寧--擔");
sprintf(bf2, "--帪--暘--昩");
}
SetDlgItemText(IDC_STC_DATE, buf);
SetDlgItemText(IDC_STC_TIME, bf2);
}
CDlg_Map::MagDataDisp(ch);
}
/*=====================================
m:17-Dec-1998
@p << 奺僨乕僞昞帵 >>
// 27:HY
=====================================*/
void CDlg_Map::DataDisp()
{
int ch;
for (ch=0;ch<MAX_CH;ch++){
EntDataDisp(ch);
}
}
/*=====================================
m:17-Dec-1998
@p << 奺僨乕僞昞帵 >>
// 27:HY
=====================================*/
LRESULT CDlg_Map::OnDispMap(WPARAM s_ch, LPARAM smp_poi)
{
int ch, sta, end;
if (smp_poi == 1){ // 慡娤應揰峏怴
sta = 0;
end = MAX_CH;
}
else{ // 侾娤應揰峏怴
sta = s_ch;
end = sta + 1;
}
for (ch=sta;ch<end;ch++){ //
ChkSttDat[ch].Stt_Kms = RcvSttDat[ch].Stt_Kms;
ChkSttDat[ch].Stt_Sys = RcvSttDat[ch].Stt_Sys;
EntDataDisp(ch);
}
return (0);
}
void CDlg_Map::OnPaint()
{
CPaintDC dc(this); // 昤夋梡偺僨僶僀僗 僐儞僥僉僗僩
int ch;
for (ch=0; ch<MAX_CH; ch++) {
CDlg_Map::EntDataDisp(ch);
}
SetTimer(2, 100, NULL);
// 昤夋梡儊僢僙乕僕偲偟偰 CDialog::OnPaint() 傪屇傃弌偟偰偼偄偗傑偣傫
}
/*-------------------------------------
m:12-Feb-1999
@p << 僨乕僞撪梕愗傝懼偊 >>
堷悢 dir 1 : 師僨乕僞
-1 : 慜僨乕僞
栠抣 側偟
-------------------------------------*/
void CDlg_Map::DataChange(int dir)
{
CWnd* pWnd_o;
CWnd* pWnd_n;
int ch, old;
BOOL stt_o, stt_n, chk_o, chk_n;
if (Dtb_ent_cnt == 0) return;
old = Mag_dtb_num;
Mag_dtb_num += dir;
if (Mag_dtb_num == Dtb_ent_cnt) {
Mag_dtb_num = Dtb_ent_cnt - 1;
}
else if (Mag_dtb_num < 0) {
Mag_dtb_num = 0;
}
if (Mag_dtb_num != old) {
if (Max_Info_flg) {
Mag_top_page = Mag_dtb_num - (Mag_dtb_num % MAG_MAX_STEP);
}
MAP_data_read(Mag_dtb_num); // 抧恾昞帵梡僨乕僞庢摼
for (ch=0; ch<MAX_CH; ch++) {
CDlg_Map::EntDataDisp(ch);
}
}
pWnd_o = GetDlgItem(IDC_BTN_ODATA);
pWnd_n = GetDlgItem(IDC_BTN_NDATA);
chk_o = pWnd_o->IsWindowEnabled();
chk_n = pWnd_n->IsWindowEnabled();
stt_n = TRUE;
if (Mag_dtb_num == 0) stt_n = FALSE;
stt_o = TRUE;
if ((Mag_dtb_num+1) == Dtb_ent_cnt) stt_o = FALSE;
if (chk_n != stt_n) {
Btn_stt[2] = stt_n;
pWnd_n->EnableWindow(stt_n);
}
if (chk_o != stt_o) {
Btn_stt[3] = stt_o;
pWnd_o->EnableWindow(stt_o);
}
}
/*-------------------------------------
m:12-Feb-1999
@p << 怴婯僨乕僞儃僞儞 >>
-------------------------------------*/
void CDlg_Map::OnBtnNdata()
{
CDlg_Map::DataChange(-1);
}
/*-------------------------------------
m:12-Feb-1999
@p << 夁嫀僨乕僞儃僞儞 >>
-------------------------------------*/
void CDlg_Map::OnBtnOdata()
{
CDlg_Map::DataChange(1);
}
/*-------------------------------------
m:12-Feb-1999
@p << 嵟怴僨乕僞儃僞儞 >>
-------------------------------------*/
void CDlg_Map::OnBtnNewdata()
{
int ch;
Mag_dtb_num = 0;
Mag_top_page = 0;
MAP_data_read(Mag_dtb_num); // 抧恾昞帵梡僨乕僞庢摼
for (ch=0; ch<MAX_CH; ch++) {
CDlg_Map::EntDataDisp(ch);
}
Btn_stt[2] = FALSE;
Btn_stt[3] = TRUE;
}
// ver 1.30
void CDlg_Map::OnBtnPrint()
{
Print_req = DSP_MAP;
for (int ch=0; ch<MAX_CH; ch++) {
CDlg_Map::MagDataDisp(ch);
}
SaveWindowAsFile("0_Print.bmp", (CWnd*)this, 0);
}
///////////////////////////////////////////////////////////////////////
// hy@cq_17-Feb-2004
LRESULT CDlg_Map::OnMessOut(WPARAM wPar, LPARAM lPar)
{
char buff[256];
CListBox *pList;
static int cnt = 0;
pList = (CListBox*)GetDlgItem(IDC_LIST1);
if ((cnt % 250) == 0){
pList->ResetContent(); // list box reset
}
sprintf(buff, "(%3d) %s %s", cnt ++, (char*) wPar, (char*) lPar);
pList->AddString(buff);
pList->SetCurSel(pList->GetCount()-1); // 嵟壓埵峴昞帵
return 0;
}
void CDlg_Map::OnButton1()
{
CListBox *pList;
pList = (CListBox*)GetDlgItem(IDC_LIST1);
pList->ResetContent(); // list box reset
}
void CDlg_Map::OnButton4()
{
int ch;
ch = 0; // 搊榐No.
memmove(Scw[ch].AddPar, "20440205.W18", 12); // 昞帵攇宍僼傽僀儖柤
Scw[ch].AddPar[12] = (char) 0x0d; Scw[ch].AddPar[13] = (char) 0x0a;
if (Rcw[ch].Enable && Rcw[ch].ComPhs == 0){
int t_ch;
if (TCP_USE){
t_ch = 1;
}
else{
t_ch = ch;
}
// 29-Jan:HY
M_Cmd_Exec |= Atv_dat[t_ch];
Scw[t_ch].ReqCmd = WRETURN; // 巜掕偟偨僿僢僟乕偲攇宍僼傽僀儖偺揮憲傪梫媮偡傞
CDlg_Wait wDlg;
wDlg.DoModal();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -