/*[]=====================================================================[]*/ /*[] LeadTools Run Time Library - Version 14 []*/ /*[] []*/ /*[] []*/ /*[] Copyright (c) 1991-2004 LEAD Technologies, Inc. []*/ /*[] All Rights Reserved. []*/ /*[]=====================================================================[]*/ #include "ImgPF.h" static L_BOOL FFTstDlg_OnCommand (HWND hWnd, L_INT id, HWND hWndCtl, L_UINT codeNotify); static L_BOOL FFTstDlg_OnInitDialog (HWND hWnd, HWND hWndFocus, LPARAM lParam); static L_VOID L_ApplyFilter (HWND hWnd); L_BOOL CALLBACK FFTstDlgProc(HWND hWnd, L_UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { HANDLE_MSG (hWnd, WM_COMMAND, FFTstDlg_OnCommand); HANDLE_MSG (hWnd, WM_INITDIALOG, FFTstDlg_OnInitDialog); } return FALSE; } static L_BOOL FFTstDlg_OnInitDialog (HWND hWnd, HWND hWndFocus, LPARAM lParam) { LPFTDATA pFFTData; pFFTData = (LPFTDATA)lParam; SetWindowLong(hWnd,GWL_USERDATA,(LONG)pFFTData); MoveDialogToMiddle(hWnd); Progress_SetRange(StatusProc.ProgWnd, 0, 100); Progress_SetPos(StatusProc.ProgWnd, 0); StatusProc.bProgress = TRUE; StatusProc.bKillProgress = FALSE; StatusProc.bInvalidate = FALSE; StatusProc.bEnd = FALSE; StatusProc.DlgWnd = hWnd; StatusProc.ProgressValue = 100; StatusProc.ProgWnd = GetDlgItem(hWnd, IDC_FFT_ST_PROG); UpdateWindow(hWnd); ShowWindow(hWnd, SW_SHOW); pFFTData->nRdoBaseID = IDC_FFT_ST_RED_RAD; pFFTData->nRadioNum = 4; pFFTData->uFlags = FFT_RED; InvalidateRect(FORWARD_WM_MDIGETACTIVE(hWndClient, SendMessage), NULL, FALSE); Button_SetCheck(GetDlgItem(hWnd, IDC_FFT_ST_RED_RAD), TRUE); return ( TRUE ); } static L_BOOL FFTstDlg_OnCommand (HWND hWnd, L_INT id, HWND hWndCtl, L_UINT codeNotify) { L_INT nIndex; LPFTDATA pFFTData; pFFTData = (LPFTDATA) GetWindowLong(hWnd, GWL_USERDATA); if (id >= pFFTData->nRdoBaseID && id < pFFTData->nRdoBaseID + pFFTData->nRadioNum) { nIndex = id - pFFTData->nRdoBaseID; if (nIndex == 3) pFFTData->uFlags = FFT_GRAY; else pFFTData->uFlags = (pFFTData->nRadioNum - (nIndex + 1)) << 4; return TRUE; } switch (id) { case IDC_FFT_ST_NEXT_BTN: L_ApplyFilter (hWnd); break; case IDCANCEL: StatusProc.bProgress = FALSE; StatusProc.bKillProgress = TRUE ; StatusProc.ProgressValue = 100 ; EndDialog(hWnd, FALSE); break; } return TRUE; } static L_VOID L_ApplyFilter (HWND hWnd) { pCHILDDATA pData; L_INT nRet = 0; HWND hWndParent; LPFTDATA pFFTData; if (100 != StatusProc.ProgressValue) { return; } pFFTData = (LPFTDATA) GetWindowLong(hWnd,GWL_USERDATA); hWndParent = FORWARD_WM_MDIGETACTIVE(hWndClient,SendMessage); pData = LOCKCHILDDATA (hWndParent); // L_AllocFTArray(&pData->LeadBitmap, &pFFTData->pFtArray, sizeof(FTARRAY)); nRet = L_FFTBitmap(&pData->LeadBitmap, pFFTData->pFtArray, FFT_FFT | pFFTData->uFlags); if(nRet == SUCCESS) { StatusProc.ProgressValue = 100; EndDialog(hWnd, TRUE); Progress_SetPos(StatusProc.ProgWnd , 0); } //L_FreeFTArray(pFFTData->pFtArray); }