📄 appmain.c
字号:
HqSelData[i].recCount =atoi(tok); for(j =0; j<HqSelData[i].recCount; j++) { if(!(tok =strtok(NULL, ","))) break; HqSelData[i].recNum[j] =atoi(tok); } HqSelData[i].recCount =j; } */ if(!GetInitString("HQ", "FLDS", tmp)) { HqPaintData.fldCount =0; return 0; } if(!(tok =strtok(tmp, ","))) { HqPaintData.fldCount =0; return 0; } HqPaintData.fldCount =atoi(tok); for(i =0; i<HqPaintData.fldCount; i++) { if(!(tok =strtok(NULL, ","))) break; HqPaintData.fldNum[i] =atoi(tok); } HqPaintData.fldCount =i; return 0;}int GetSelSet(void){ int i, j,k; char tmp[6000], tmp1[20]; LPSTR tok; for(i =0; i<5; i++) { sprintf(tmp1, "HQSEL%d", i); if(!GetInitString("HQSEL", tmp1, tmp)) { HqSelData[i].recCount =0; continue; } if(!(tok =strtok(tmp, ","))) continue;; HqSelData[i].jys =atoi(tok); if(HqSelData[i].jys <0) HqSelData[i].jys =0; if(HqSelData[i].jys >=2) HqSelData[i].jys =1; if(!(tok =strtok(NULL, ","))) continue; HqSelData[i].recCount =atoi(tok); for(j =0; j<HqSelData[i].recCount; j++) { if(!(tok =strtok(NULL, ","))) break; HqData[HqSelData[i].jys].lpPreData[HqSelData[i].recNum[j]].zqdm; for(k=0;k<HqData[HqSelData[i].jys].recCount;k++) { if(strncmp(tok,HqData[HqSelData[i].jys].lpPreData[k].zqdm, strlen(tok))==0) break; } if(k<HqData[HqSelData[i].jys].recCount) HqSelData[i].recNum[j] =k; else continue; } HqSelData[i].recCount =j; } return 0;}BOOL RegisterChilds(void){ if(!RegisterHq()) { ErrMsg(NULL, "Error Register HQ"); return FALSE; } if(!RegisterXlt()) { ErrMsg(NULL, "Error Register JgGraph"); return FALSE; } if(!RegisterJlt()) { ErrMsg(NULL, "Error Register JltGraph"); return FALSE; } if(!RegisterStatus()) { ErrMsg(NULL, "Error Register Status"); return FALSE; } if(!RegisterCaption()) { ErrMsg(NULL, "Error Register Caption"); return FALSE; } if(!RegisterMmp()) { ErrMsg(NULL, "Error Register Mmp"); return FALSE; } if(!RegisterCj()) { ErrMsg(NULL, "Error Register Cj"); return FALSE; } if(!RegisterLitHq()) { ErrMsg(NULL, "Error Register LitHq"); return FALSE; } if(!RegisterMaxMin()) { ErrMsg(NULL, "Error Register LitHq"); return FALSE; } if(!RegisterZs()) { ErrMsg(NULL, "Error Register Zs"); return FALSE; } if(!RegisterFx()) { ErrMsg(NULL, "Error Register Fx"); return FALSE; } if(!RegisterToolBar()) { ErrMsg(NULL, "Error Register ToolBar"); return FALSE; } if(!RegisterHelp()) { ErrMsg(NULL, "Error Register Help"); return FALSE; } if(!RegisterMsg()) { ErrMsg(NULL, "Error Register Msg"); return FALSE; } return TRUE; }BOOL CreateChilds(HWND hWnd){ if(!CreateWndHq(hWnd)) { ErrMsg(hWnd, "CreateWndHq failed!"); return FALSE; } if(!CreateWndStatus(hWnd)) { ErrMsg(hWnd, "CreateWndStatus failed!"); return FALSE; } if(!CreateWndCaption(hWnd)) { ErrMsg(hWnd, "CreateWndCaption failed!"); return FALSE; } if(!CreateWndXlt(hWnd)) { ErrMsg(hWnd, "CreateWndXlt failed!"); return FALSE; } if(!CreateWndJlt(hWnd)) { ErrMsg(hWnd, "CreateWndJlt failed!"); return FALSE; } if(!CreateWndMmp(hWnd)) { ErrMsg(hWnd, "CreateWndMmp failed!"); return FALSE; } if(!CreateWndCj(hWnd)) { ErrMsg(hWnd, "CreateWndCj failed!"); return FALSE; } if(!CreateWndLitHq(hWnd)) { ErrMsg(hWnd, "CreateWndLitHq failed!"); return FALSE; } if(!CreateWndMaxMin(hWnd)) { ErrMsg(hWnd, "CreateWndMaxMin failed!"); return FALSE; } if(!CreateWndZs(hWnd)) { ErrMsg(hWnd, "CreateWndZs failed!"); return FALSE; } if(!CreateWndFx(hWnd)) { ErrMsg(hWnd, "CreateWndFx failed!"); return FALSE; } if(!CreateToolBar(hWnd)) { ErrMsg(hWnd, "CreateWnd ToolBar failed!"); return FALSE; } if(!CreateWndHelp(hWnd)) { ErrMsg(hWnd, "CreateWnd Help!"); return FALSE; } if(!CreateWndMsg(hWnd)) { ErrMsg(hWnd, "CreateWnd Msg!"); return FALSE; } return TRUE;}void PASCAL ShowBmp(HDC hDC,HBITMAP hBmp,int left,int top,int width,int height){ HDC hMemDC = CreateCompatibleDC(hDC); if(hBmp) { SelectObject(hMemDC,hBmp); BitBlt(hDC,left,top,width,height,hMemDC,0,0,SRCCOPY); } DeleteObject(hMemDC);}void PASCAL ShowBmp1(HDC hDC,HBITMAP hBmp,int left,int top,int width,int height){ BITMAP bmp; HDC hMemDC = CreateCompatibleDC(hDC); GetObject(hBmp, sizeof(BITMAP), &bmp); if(hBmp) { SelectObject(hMemDC,hBmp); StretchBlt(hDC,left,top,width,height,hMemDC,0,0, bmp.bmWidth, bmp.bmHeight,SRCCOPY); } DeleteObject(hMemDC);}LRESULT CALLBACK HelpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);BOOL RegisterHelp(void){ WNDCLASS wc; memset(&wc, 0, sizeof(wc)); wc.style =CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc =HelpWndProc; wc.lpszClassName ="HELP"; wc.hbrBackground =GetStockObject(BLACK_BRUSH); wc.hInstance = ghInstance; wc.lpszMenuName = NULL; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(ghInstance, MAKEINTRESOURCE(IDR_MAINFRAME)); if(!RegisterClass(&wc)) return FALSE; return TRUE;}int LoadFile(char *filename,int sline,char *title){ static char infile[80]; ShowWindow(ghWndHelp,SW_SHOW); SetFocus(ghWndHelp); if(strlen(filename)!=0) { strcpy(infile,filename); SendMessage(ghWndHelp,WM_USER+2,(UINT)sline,(LPARAM)filename); } if(strlen(title)!=0) SetWindowText(ghWndHelp,title); return 1;}#define MAX_LINE_CHARS 200#define MAX_DISP_LINE 300char *PageBuff[MAX_DISP_LINE];int LoadPage(char *filename,int lstart,int lnum){ FILE *fp; int i,j=0; char line[MAX_LINE_CHARS+1]; fp=fopen(filename,"rt"); if(fp==NULL) return -1; if(lnum ==0) lnum =MAX_DISP_LINE; for(i=0;i<lstart+lnum;i++) { if(fgets(line,MAX_LINE_CHARS,fp)==NULL) break; if(i<lstart) continue; if(PageBuff[j] ==NULL) PageBuff[j] =(char *)GlobalAllocPtr(GHND,MAX_LINE_CHARS*sizeof(char)); if(PageBuff[j]==NULL) break; memset(PageBuff[j],' ',MAX_LINE_CHARS); strcpy(PageBuff[j++],line); } fclose(fp); return j;}extern int UDP_Send_Stock_Info(STOCK_INFO_FRAME *StockInfoFrame);LRESULT CALLBACK HelpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ PAINTSTRUCT ps; RECT rc; static char file[256]; static int sline=0, TolNum=0, minRange,maxRange,step,LinePerScr,CurSor=0; int pos; char line[256]; int i,j; STOCK_INFO_FRAME StockInfo; HDC hdc; TEXTMETRIC tm; static int FontHeight; switch(message) { case WM_CREATE: hdc =GetDC(hWnd); SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT)); GetTextMetrics(hdc, &tm); FontHeight =tm.tmHeight; FontHeight +=FontHeight*15/100; ReleaseDC(hWnd, hdc); SetScrollRange(hWnd,SB_VERT,0,5000,TRUE); GetScrollRange(hWnd,SB_VERT,&minRange,&maxRange); GetClientRect(hWnd, &rc); LinePerScr =(rc.bottom -rc.top)/FontHeight; memset(PageBuff,0,sizeof(char *)*MAX_DISP_LINE); break; case WM_SIZE: GetClientRect(hWnd, &rc); LinePerScr =(rc.bottom -rc.top)/FontHeight; if(TolNum>0) step = maxRange/TolNum; break; case WM_USER+2: strcpy(file,(LPSTR)lParam); TolNum=sline =CurSor=0; TolNum =LoadPage(file,sline,0); if(TolNum>0) { step = maxRange/TolNum; InvalidateRect(ghWndHelp, NULL, TRUE); } else SetTimer(hWnd,1,1000,NULL); break; case WM_VSCROLL: pos=GetScrollPos(hWnd,SB_VERT); if(wParam==SB_BOTTOM) sline=TolNum -1; if(wParam==SB_LINEDOWN) if(sline<TolNum) sline++; if(wParam==SB_PAGEDOWN) if(sline+LinePerScr<=TolNum) sline+=LinePerScr; if(wParam==SB_PAGEUP) { if(sline -LinePerScr>=0) sline -=LinePerScr; else sline=0; } if(wParam==SB_LINEUP) if(sline>0) sline--; if(wParam==SB_TOP) sline=0; pos=step*sline ; SetScrollPos(hWnd,SB_VERT,pos,TRUE); InvalidateRect(ghWndHelp, NULL, TRUE); break; case WM_KEYDOWN: if(wParam==VK_ESCAPE) { SetScrollPos(hWnd,SB_VERT,0,TRUE); ShowWindow(hWnd,SW_HIDE); KillTimer(hWnd,1); for(i=0;i<TolNum;i++) { GlobalFreePtr(PageBuff[i]); PageBuff[i] =NULL; } TolNum=sline =CurSor=0; break; } pos=GetScrollPos(hWnd,SB_VERT); if(wParam==VK_UP) { if(TolNum>0) { hdc =GetDC(hWnd); SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT)); SetBkColor(hdc, RGB(0, 0, 0)); SetTextColor(hdc, RGB(10,150,100)); TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor], strlen(PageBuff[sline+CurSor])-1); if(CurSor>0) CurSor--; SetTextColor(hdc, RGB(0,255,255)); TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor], strlen(PageBuff[sline+CurSor])-1); ReleaseDC(hWnd,hdc); } break; } if(wParam==VK_DOWN) { if(TolNum>0) { hdc =GetDC(hWnd); SelectObject(hdc,GetStockObject(SYSTEM_FIXED_FONT)); SetBkColor(hdc, RGB(0, 0, 0)); SetTextColor(hdc, RGB(10,150,100)); TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor], strlen(PageBuff[sline+CurSor])-1); if(CurSor<LinePerScr &&CurSor +sline <TolNum-1) CurSor++; SetTextColor(hdc, RGB(0,255,255)); TextOut(hdc,2,CurSor*FontHeight,PageBuff[sline+CurSor], strlen(PageBuff[sline+CurSor])-1); ReleaseDC(hWnd,hdc); } break; } if(wParam==VK_NEXT) { if(TolNum>0) { CurSor =0; if(sline+LinePerScr<TolNum) sline+=LinePerScr; else { sline =TolNum -LinePerScr -1; if(sline <0) sline =0; } } } if(wParam==VK_PRIOR) { if(TolNum>0) { CurSor =LinePerScr -1; if(sline -LinePerScr>=0) sline -=LinePerScr; else sline=0; } } if(wParam ==VK_RETURN) { if(TolNum>0) { if(strstr(strupr(file),"IDX")!=NULL) { StockInfo.type= 2; strncpy(line,PageBuff[sline+CurSor],12); line[12] =0; for(i=0;i<12;i++) { if(line[i]!=' ') break; } if(i<12) { strcpy(StockInfo.name,&line[i]); sprintf(file,"%s\\%s",szDataPath,&line[i]); TolNum=sline =CurSor=0; UDP_Send_Stock_Info(&StockInfo); SetTimer(hWnd,1,3000,NULL); } } } } pos=step*sline ; SetScrollPos(hWnd,SB_VERT,pos,TRUE); InvalidateRect(ghWndHelp, NULL, TRUE); break; case WM_TIMER: KillTimer(hWnd,1); TolNum =LoadPage(file,sline,0); if(TolNum>0) { step = maxRange/TolNum; InvalidateRect(ghWndHelp, NULL, TRUE); } else SetTimer(hWnd,1,1000,NULL); break; //case WM_KILLFOCUS: // KillTimer(hWnd,1); //break; case WM_PAINT: BeginPaint(hWnd, &ps); SelectObject(ps.hdc,GetStockObject(SYSTEM_FIXED_FONT)); SetBkColor(ps.hdc, RGB(0, 0, 0)); for(i=sline,j=0;i<TolNum&&i<=LinePerScr+sline;i++,j++) { memset(line,' ',256); TextOut(ps.hdc,2,j*FontHeight,line,256); if(j==CurSor) SetTextColor(ps.hdc, RGB(0,255,255)); else SetTextColor(ps.hdc, RGB(10,150,100)); TextOut(ps.hdc,2,j*FontHeight,PageBuff[i],strlen(PageBuff[i])-1); } EndPaint(hWnd, &ps); break; case WM_DESTROY: KillTimer(hWnd,1); break; default: break; } return DefWindowProc(hWnd, message, wParam, lParam);}BOOL CreateWndHelp(HWND hWnd){ int x ; HWND hwnd; RECT rc; GetClientRect(ghWndMain, &rc); x =GetSystemMetrics(SM_CXSCREEN); if(ghWndHelp ==NULL) { hwnd =CreateWindow("HELP", "在线帮助[ESC退出]", WS_POPUP|WS_CAPTION|WS_HSCROLL|WS_VSCROLL|WS_THICKFRAME, 0, STATUS_HEIGHT-2+TOOLBAR_HEIGHT, x, rc.bottom -rc.top -STATUS_HEIGHT*2-TOOLBAR_HEIGHT+2, NULL, NULL, ghInstance, NULL); if(hwnd ==NULL) { ErrMsg(hWnd, "Error create help window"); return FALSE; } ghWndHelp =hwnd; ShowWindow(hwnd, SW_HIDE); } return TRUE;} int ReCreateChild(void){ PostMessage(ghWndHq,WM_CLOSE,0,0L); PostMessage(ghWndStatus,WM_CLOSE,0,0L); //PostMessage(ghWndCaption,WM_CLOSE,0,0L); PostMessage(ghWndXlt,WM_CLOSE,0,0L); PostMessage(ghWndJlt,WM_CLOSE,0,0L); PostMessage(ghWndMmp,WM_CLOSE,0,0L); PostMessage(ghWndCj,WM_CLOSE,0,0L); PostMessage(ghWndLitHq,WM_CLOSE,0,0L); PostMessage(ghWndMaxMin,WM_CLOSE,0,0L); PostMessage(ghWndZs,WM_CLOSE,0,0L); PostMessage(ghWndFx,WM_CLOSE,0,0L); ghWndHq=ghWndXlt=ghWndJlt=ghWndMmp=NULL; ghWndCj = ghWndLitHq =ghWndMaxMin =ghWndZs =NULL; ghWndFx =NULL; ghWndStatus =NULL; //PostMessage(ghWndToolBar,WM_CLOSE,0,0L); if(!CreateChilds(ghWndMain)) return -1; else return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -