📄 jy_cl.c
字号:
} hdc =GetDC(hDlg); GetClientRect(hDlg, &rc); SetBkColor(hdc,RGB(255,0,0)); SelectObject(hdc,GetStockObject(WHITE_PEN)); strcpy(&tmp[0],"欢迎您继续委托... "); TextOut(hdc,rc.left +10,rc.bottom -20,tmp,strlen(tmp)); ReleaseDC(hDlg,hdc); SendDlgItemMessage(hDlg, IDC_JG, EM_SETSEL, 0, MAKELONG(0,-1)); SendDlgItemMessage(hDlg, IDC_JG, WM_CLEAR, 0, 0); SendDlgItemMessage(hDlg, IDC_SL, EM_SETSEL, 0, MAKELONG(0,-1)); SendDlgItemMessage(hDlg, IDC_SL, WM_CLEAR, 0, 0); gnTimers =0; state =0; EnableWindow(hDlg, TRUE); break; } return FALSE;}LRESULT CALLBACK CancelDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){ static JY_ASK_CANCEL CancelData; static JY_ANS_CANCEL CancelRes; static JY_ASK_WTCX WtcxData; static JY_ANS_WTCX WtcxRes; PAINTSTRUCT ps; int i, j, k; DWORD dw; HWND hctl; static int sel_num[MAX_CANCEL_SENDCOUNT]; char tmp[256],gpmc[9]; LPSTR lpTmp; static int state; int idFocus,ret; static BOOL fFirst =TRUE; static hBrush; LPDRAWITEMSTRUCT lpdis; LPMEASUREITEMSTRUCT lpmis; TEXTMETRIC tm; HWND hDC; switch(msg) { case WM_INITDIALOG: ghDlgJy =hDlg; memset(&CancelData, 0, sizeof(CancelData)); memset(&CancelRes, 0, sizeof(CancelRes)); memset(&WtcxData, 0, sizeof(WtcxData)); memset(&WtcxRes, 0, sizeof(WtcxRes)); CancelData.jys =curChkUsrRes.jys; CancelData.cancelCount =0; CancelData.userId =curChkUsrRes.userId; strcpy(CancelData.gddm, curChkUsrRes.gddm); WtcxData.jys =curChkUsrRes.jys; WtcxData.userId =curChkUsrRes.userId; WtcxData.cdcx='Y'; strcpy(WtcxData.gddm, curChkUsrRes.gddm); hBrush=CreateSolidBrush(RGB(0,255,255)); if(curChkUsrRes.jys==0) strcpy(tmp,"深圳A股"); if(curChkUsrRes.jys==1) strcpy(tmp,"上海A股"); strcat(tmp,"撤销委托"); SetWindowText(hDlg,tmp); PostMessage(hDlg, WM_JY_INIT, 0, 0L); state =0; fFirst =TRUE; gnTimers =0; SetTimer(hDlg,1, 1000, NULL); CenterWindow(hDlg); return TRUE; case WM_JY_INIT: SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0, (LPARAM)(LPSTR)"正在查询委托..."); gnTimers =0; if(gfTest) SendMessage(hDlg,WM_JYCX_RES,0,0L); else UDP_Jy_Wtcx(&WtcxData, &WtcxRes); break; case WM_JYCX_RES: if(fFirst) { SendDlgItemMessage(hDlg, IDL_CX, LB_RESETCONTENT, 0, 0L); fFirst =FALSE; } if(gfTest) { ret=WtcxRes.flag=ANS_SUCC; WtcxRes.recCount=5; for(i=0;i<WtcxRes.recCount;i++) { sprintf(WtcxRes.Wt[i].hthm,"%d",i+112); strcpy(WtcxRes.Wt[i].wtsj,"091012"); WtcxRes.Wt[i].mmbz='S'; if(curChkUsrRes.jys==0) sprintf(WtcxRes.Wt[i].gpdm ,"%04d",1+i); else sprintf(WtcxRes.Wt[i].gpdm ,"%06ld",(long)(600600+i)); sprintf(WtcxRes.Wt[i].wtgs,"%d",i*100+50); sprintf(WtcxRes.Wt[i].wtjg,"%.2f",4.23*i+12.29); } } else { if(WtcxRes.flag !=ANS_SUCC&&WtcxRes.recCount>0) { MessageBox(hDlg,"委托查询失败!", "撤单", MB_OK); break; } if(WtcxRes.recCount ==0) { MessageBox(hDlg,"没有可以撤消委托的合同!", "撤单", MB_OK); break; } } memset(&tmp[0], 0, sizeof(tmp)); for(i =0,j=0; i<WtcxRes.recCount; i++) { lpTmp =&WtcxRes.Wt[i].wtgs[0]; while(*lpTmp !=0 && *lpTmp !='-') lpTmp++; if(*lpTmp =='-') { sel_num[j] =i; j++; continue; } } k =j; for(i =0; i<WtcxRes.recCount; i++) { lpTmp =&WtcxRes.Wt[i].wtgs[0]; while(*lpTmp !=0 && *lpTmp !='-') lpTmp++; if(*lpTmp =='-') continue; for(j =0; j<k; j++) { if(i ==sel_num[j] || !strcmp(WtcxRes.Wt[i].hthm, WtcxRes.Wt[sel_num[j]].hthm)) break; } if(j !=k) continue; for(j=0;j<HqData[curChkUsrRes.jys].recCount;j++) { if(strncmp(HqData[curChkUsrRes.jys].lpPreData[j].zqdm, WtcxRes.Wt[i].gpdm,strlen(HqData[curChkUsrRes.jys].lpPreData[j].zqdm))==0) break; } if(j<HqData[curChkUsrRes.jys].recCount) { strncpy(gpmc,HqData[curChkUsrRes.jys].lpPreData[j].zqmc,8); gpmc[8]=0; } else strcpy(gpmc,WtcxRes.Wt[i].gpdm); sprintf(tmp, "%06s %8s %4s %8s %8s %8s", WtcxRes.Wt[i].hthm, WtcxRes.Wt[i].wtsj, (WtcxRes.Wt[i].mmbz=='B')?"买入": ((WtcxRes.Wt[i].mmbz=='S')?"卖出":"撤单"), gpmc, WtcxRes.Wt[i].wtgs,WtcxRes.Wt[i].wtjg); SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0, (LPARAM)(LPSTR)tmp); } break; case WM_CTLCOLOR: SetBkMode((HDC)wParam, TRANSPARENT); switch(HIWORD(lParam)) { case CTLCOLOR_DLG: case CTLCOLOR_STATIC: return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH); case CTLCOLOR_LISTBOX: return (LRESULT)hBrush; case CTLCOLOR_MSGBOX: return (LRESULT)(HBRUSH)GetStockObject(LTGRAY_BRUSH); } return (LRESULT)NULL; case WM_DRAWITEM: lpdis = (LPDRAWITEMSTRUCT)lParam; if (lpdis->itemID == -1) { if(lpdis->CtlType==ODT_BUTTON) BtnFocusState(lpdis); if(lpdis->CtlType==ODT_LISTBOX) { DrawFocusRect(lpdis->hDC,(LPRECT)&lpdis->rcItem); return TRUE; } } else { if(lpdis->itemAction&ODA_DRAWENTIRE) { if(lpdis->CtlType==ODT_BUTTON) BtnDrawEntireItem(lpdis); if(lpdis->CtlType==ODT_LISTBOX) { i=lpdis->itemID; SendMessage(lpdis->hwndItem,LB_GETTEXT, (WPARAM)lpdis->itemID,(LPARAM)(LPSTR)tmp); SelectObject(lpdis->hDC,GetStockObject(SYSTEM_FIXED_FONT)); TextOut(lpdis->hDC,lpdis->rcItem.left,lpdis->rcItem.top,tmp,strlen(tmp)); } if(lpdis->itemState&ODS_SELECTED) { if(lpdis->CtlType==ODT_BUTTON) BtnSelectionState(lpdis); if(lpdis->CtlType==ODT_LISTBOX) InvertRect(lpdis->hDC,(LPRECT)&lpdis->rcItem); } if(lpdis->itemState&ODA_FOCUS) { if(lpdis->CtlType==ODT_BUTTON) BtnFocusState(lpdis); if(lpdis->CtlType==ODT_LISTBOX) DrawFocusRect(lpdis->hDC,(LPRECT)&lpdis->rcItem); } return TRUE; } if(lpdis->itemAction&ODA_SELECT) { if(lpdis->CtlType==ODT_BUTTON) BtnSelectionState(lpdis); if(lpdis->CtlType==ODT_LISTBOX) InvertRect(lpdis->hDC,(LPRECT)&lpdis->rcItem); return TRUE; } if(lpdis->itemAction&ODA_FOCUS) { if(lpdis->CtlType==ODT_BUTTON) BtnFocusState(lpdis); if(lpdis->CtlType==ODT_LISTBOX) DrawFocusRect(lpdis->hDC,(LPRECT)&lpdis->rcItem); return TRUE; } } break; case WM_MEASUREITEM: lpmis =(LPMEASUREITEMSTRUCT)(lParam); hDC =GetDC(hDlg); SelectObject(hDC,GetStockObject(SYSTEM_FIXED_FONT)); GetTextMetrics(hDC,&tm); lpmis->itemHeight =tm.tmHeight; ReleaseDC(hDlg,hDC); break; case WM_PAINT: BeginPaint(hDlg, &ps); DrawFrame(ps.hdc, hDlg); EndPaint(hDlg, &ps); break; case WM_TIMER: if(gnTimers ++>60) SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L); break; case WM_COMMAND: gnTimers =0; switch(wParam) { case IDOK: hctl =GetFocus(); idFocus =GetWindowWord(hctl, GWW_ID); if(idFocus ==IDCANCEL) { SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L); break; } if(CancelData.cancelCount !=0) break; dw =SendDlgItemMessage(hDlg, IDL_CX, LB_GETSELCOUNT, 0, 0L); hctl =GetDlgItem(hDlg, IDL_CX); SetFocus(hctl); if(dw ==LB_ERR) break; if((int)dw >MAX_CANCEL_SENDCOUNT-1) { wsprintf(tmp, "一次最多选择%d笔", (int)MAX_CANCEL_SENDCOUNT-1); ErrMsg(hDlg, tmp); break; } CancelData.cancelCount =(int)dw; if(CancelData.cancelCount ==0) break; if(SendDlgItemMessage(hDlg, IDL_CX, LB_GETSELITEMS, (int)dw, (LPARAM)(int FAR *)sel_num) ==LB_ERR) break; for(i =0; i<CancelData.cancelCount; i++) { if(SendDlgItemMessage(hDlg, IDL_CX, LB_GETTEXT, sel_num[i], (LPARAM)(LPSTR)tmp) ==LB_ERR) break; else strncpy(CancelData.Cancel[i].hthm,tmp,MAX_HTHM_SIZE); } hctl =GetFocus(); i =GetWindowWord(hctl, GWW_ID); if(i ==IDCANCEL) { SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L); break; } EnableWindow((HWND)LOWORD(lParam), FALSE); memset(&CancelRes.flag, ANS_UNKOWN, sizeof(CancelRes.flag)); if(gfTest) SendMessage(hDlg,WM_JY_RES ,0,0L); else { if(UDP_Jy_Cancel(&CancelData, &CancelRes) <0) { ErrMsg(hDlg, "通讯错误:不能将请求送到主机"); EnableWindow((HWND)LOWORD(lParam), TRUE); break; } } break; case IDCANCEL: udpread_stop =TRUE; KillTimer(hDlg, 1); ghDlgJy =NULL; DeleteObject(hBrush); EndDialog(hDlg, 0); break; } break; case WM_JY_RES: if(gfTest) ret=CancelRes.flag[0]=ANS_SUCC; for(i=CancelData.cancelCount-1,j=0; i>=0; i--) { if(CancelRes.flag[i] ==ANS_SUCC) { j++; SendDlgItemMessage(hDlg, IDL_CX, LB_DELETESTRING, sel_num[i], 0L); } } ret=CancelRes.flag[0]; if(j>0&&ret==ANS_SUCC) wsprintf(tmp, "您的撤单已发出!"); else { switch(ret) { case '1': strcpy(tmp,"请您注意,无此合同代码!"); break; case '2': strcpy(tmp,"无此股东代码或已挂失!"); break; case '3': strcpy(tmp,"请您注意,无此交易帐号!"); break; case '4': strcpy(tmp,"请您注意,撤单股数错!"); break; case '5': strcpy(tmp,"请您注意,重复撤单错!"); break; case '6': strcpy(tmp,"请您注意,撤单帐号错!"); break; case ANS_SYS_ERR: strcpy(tmp,"请您注意,主机系统错!"); break; case ANS_SUSP_REQ: strcpy(tmp,"主机正在处理您的上次请求!"); break; case ANS_NO_PRIV: strcpy(tmp,"您没有权限进入主机!"); break; default: strcpy(tmp,"请您注意,未知错误"); } } MessageBox(hDlg, tmp, "撤单", MB_OK); hctl =GetDlgItem(hDlg, IDOK); CancelData.cancelCount =0; EnableWindow(hctl, TRUE); break; } return FALSE;}LRESULT CALLBACK YecxDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){ static JY_ASK_YECX YecxData; static JY_ANS_YECX YecxRes; PAINTSTRUCT ps; char tmp[256],gpmc[9]; static BOOL fFirst =TRUE; int i,ret,j; static HBRUSH hBrush; LPDRAWITEMSTRUCT lpdis; LPMEASUREITEMSTRUCT lpmis; TEXTMETRIC tm; HWND hDC; switch(msg) { case WM_INITDIALOG: ghDlgJy =hDlg; memset(&YecxData, 0, sizeof(YecxData)); memset(&YecxRes, 0, sizeof(YecxRes)); fFirst =TRUE; YecxData.jys =curChkUsrRes.jys; YecxData.userId =curChkUsrRes.userId; YecxRes.recCount =0; strcpy(YecxData.gddm, curChkUsrRes.gddm); hBrush=CreateSolidBrush(RGB(0,255,255)); if(curChkUsrRes.jys==0) strcpy(tmp,"深圳A股"); if(curChkUsrRes.jys==1) strcpy(tmp,"上海A股"); strcat(tmp,"余额查询"); SetWindowText(hDlg,tmp); PostMessage(hDlg, WM_JY_INIT, 0, 0L); SetTimer(hDlg, 1, 1000, NULL); gnTimers =0; CenterWindow(hDlg); return TRUE; case WM_JY_INIT: if(!fFirst) break; SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0, (LPARAM)(LPSTR)"正在查询..."); gnTimers =0; if(gfTest) { SendMessage(hDlg, WM_JYCX_RES, 0, 0L); YecxRes.kys =8880000.99; YecxRes.zjye=YecxRes.kys+100; } else { if(UDP_Jy_Yecx(&YecxData, &YecxRes) <0) { ErrMsg(hDlg, "通讯错误:不能将请求送到主机"); SendMessage(hDlg, WM_COMMAND, IDCANCEL, 0L); } } break; case WM_JYCX_RES: gnTimers =0; if(fFirst) { SendDlgItemMessage(hDlg, IDL_CX, LB_RESETCONTENT, 0, 0L); fFirst =FALSE; } sprintf(tmp, "%.2f", YecxRes.kys); SetDlgItemText(hDlg, IDC_KYJE, tmp); sprintf(tmp, "%.2f", YecxRes.zjye); SetDlgItemText(hDlg, IDC_ZJYE, tmp); if(gfTest) { ret =YecxRes.flag=ANS_SUCC; YecxRes.recCount=5; for(i=0;i<YecxRes.recCount;i++) { memset(&YecxRes.GpTg[i],0,sizeof(JY_GPTG)); if(curChkUsrRes.jys==0) sprintf(YecxRes.GpTg[i].gpdm ,"%04d",1+i); else sprintf(YecxRes.GpTg[i].gpdm ,"%06ld",(long)(600600+i)); sprintf(YecxRes.GpTg[i].kys,"%d",100+i); sprintf(YecxRes.GpTg[i].gpye,"%d",200+i); sprintf(YecxRes.GpTg[i].ghrq,"%6s","091008"); } } else ret =YecxRes.flag; if(ret!=ANS_SUCC) { if(ret==1) strcpy(tmp,"请您注意,无此股东代码!"); else if(ret==2) strcpy(tmp,"您已透资,不能查询"); else if(ret==ANS_SYS_ERR) strcpy(tmp,"请您注意,主机系统错!"); else if(ret==ANS_SUSP_REQ) strcpy(tmp,"主机正在处理您的上次请求!"); else if(ret==ANS_NO_PRIV) strcpy(tmp,"您没有权限进入主机!"); else strcpy(tmp,"请您注意,未知系统错!"); MessageBox(hDlg, tmp, "余额查询", MB_OK); } else { memset(&tmp[0], 0, sizeof(tmp)); if(YecxRes.recCount==0) { strcpy(tmp,"没有您的托管资料"); SendDlgItemMessage(hDlg, IDL_CX, LB_ADDSTRING, 0, (LPARAM)(LPSTR)tmp); } else { for(i =0; i<YecxRes.recCount; i++) { for(j=0;j<HqData[curChkUsrRes.jys].recCount;j++) { if(strncmp(HqData[curChkUsrRes.jys].lpPreData[j].zqdm, YecxRes.GpTg[i].gpdm,strlen(HqData[curChkUsrRes.jys].lpPreData[j].zqdm))==0) break; } if(j<HqData[curChkUsrRes.jys].recCount) { strncpy(gpmc,HqData[curChkUsrRes.jys].lpPreData[j].zqmc,8); gpmc[8]=0; } else strcpy(gpmc,YecxRes.GpTg[i].gpdm); sprintf(tmp, "%6s %8s %8s %8s", gpmc, YecxRes.GpTg[i].kys, YecxRes.GpTg[i].gpye, YecxRes.GpTg[i].ghrq);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -