//
/* while(ReadFile(hFile,buffer,sizeof(buffer),&dwRead,NULL) && dwRead>0){
for (int n=0;n<dwRead/3;n++)
{
offset=(n/16)*2;
if(buffer[n*3+offset]>='a' && buffer[n*3+offset]<='f')
buffer2[n]=buffer[n*3+offset]-'a'+10;
else if(buffer[n*3+offset]>='A' && buffer[n*3+offset]<='F')
buffer2[n]=buffer[n*3+offset]-'A'+10;
else
buffer2[n]=buffer[n*3+offset]-'0';
buffer2[n]<<=4;
if(buffer[n*3+1+offset]>='a' && buffer[n*3+1+offset]<='f')
buffer2[n]+=buffer[n*3+1+offset]-'a'+10;
else if(buffer[n*3+1+offset]>='A' && buffer[n*3+1+offset]<='F')
buffer2[n]+=buffer[n*3+1+offset]-'A'+10;
else
buffer2[n]+=buffer[n*3+1+offset]-'0';
}
bRet=Send(buffer2,1024);
if(!bRet)
break;
m_dwParam1+=dwRead;
ResponseMessage(REDM_RESPONSE_UPDATE,m_dwParam1,0);
}*/
//////////////////////////////
tool bar project, October 9,2011
//ON_COMMAND(ID_BUTTON_RED,OnButtonRed)
///ON_COMMAND(ID_BUTTON_GREEN,OnButtonGreen)
///ON_COMMAND(ID_BUTTON_BLUE,OnButtonBlue)
//ON_UPDATE_COMMAND_UI(ID_BUTTON_BLUE,OnUpdateButtonBlue)
//ON_UPDATE_COMMAND_UI(ID_BUTTON_GREEN,ButtonGreenUpdate)
//ON_UPDATE_COMMAND_UI(ID_BUTTON_RED,ButtonRedUpdate)
September 17, 2011 Saturday
///给TAB控件发送消息,企图改变当前选择项 TabCtrl_SetCurSel(GetDlgItem(m_hWnd,IDC_TAB1), 0); (int)SNDMSG((hwnd), TCM_SETCURSEL, (WPARAM)(i), 0)
NMHDR nmh;
nmh.code=TCN_SELCHANGE;
nmh.idFrom=GetDlgCtrlID(GetDlgItem(m_hWnd,IDC_TAB1));//control id
nmh.hwndFrom=GetDlgItem(m_hWnd,IDC_TAB1);
SendMessage(m_hWnd,WM_NOTIFY,(WPARAM)GetDlgItem(m_hWnd,IDC_TAB1),(LPARAM)&nmh);
强制生成的对话框窗口在任务栏上显示图标(September 22,2011 Thursday 15:30)
DWORD dwStyle=0;
dwStyle=GetWindowLongPtr(m_hWnd,GWL_EXSTYLE);
DWORD status=0;
status=SetWindowLongPtr(m_hWnd,GWL_EXSTYLE,dwStyle|WS_EX_APPWINDOW);
cl.exe path bat file (October 10,2011 Monday 14:07)
@SET VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0
@SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 9.0\VC
@SET FrameworkDir=C:\WINDOWS\Microsoft.NET\Framework
@SET FrameworkVersion=v2.0.50727
@SET Framework35Version=v3.5
@if "%VSINSTALLDIR%"=="" goto error_no_VSINSTALLDIR
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR
@echo Setting environment for using Microsoft Visual Studio 2008 x86 tools.
@call :GetWindowsSdkDir
@if not "%WindowsSdkDir%" == "" (
set "PATH=%WindowsSdkDir%bin;%PATH%"
set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%"
set "LIB=%WindowsSdkDir%lib;%LIB%"
)
@rem
@rem Root of Visual Studio IDE installed files.
@rem
@set DevEnvDir=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
@set PATH=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN;C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools;C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program
Files\Microsoft Visual Studio 9.0\VC\VCPackages;%PATH%
@set INCLUDE=C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE;%INCLUDE%
@set LIB=C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;%LIB%
@set LIBPATH=C:\WINDOWS\Microsoft.NET\Framework\v3.5;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;%LIBPATH%
@goto end
:GetWindowsSdkDir
@call :GetWindowsSdkDirHelper HKLM > nul 2>&1
@if errorlevel 1 call :GetWindowsSdkDirHelper HKCU > nul 2>&1
@if errorlevel 1 set WindowsSdkDir=%VCINSTALLDIR%\PlatformSDK\
@exit /B 0
:GetWindowsSdkDirHelper
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows" /v "CurrentInstallFolder"') DO (
if "%%i"=="CurrentInstallFolder" (
SET "WindowsSdkDir=%%k"
)
)
@if "%WindowsSdkDir%"=="" exit /B 1
@exit /B 0
:error_no_VSINSTALLDIR
@echo ERROR: VSINSTALLDIR variable is not set.
@goto end
:error_no_VCINSTALLDIR
@echo ERROR: VCINSTALLDIR variable is not set.
@goto end
:end
亮度数据存在一个位图中。(Nov 17,2011)
/* TCHAR szFilter[MAX_PATH],szFile[MAX_PATH],szDefExt[]=_T(".rrpb"),*pChr; TCHAR szBuf[MAX_PATH]; OPENFILENAME ofn; HANDLE hfile; BITMAPFILEHEADER bmpfile; BITMAPINFOHEADER bmpinfo; RGBQUAD rgb[256]; ///256 STRUCTURES DWORD size; if(m_pControl->btBrightReserType){ if(QueryINIText(_T("LEDSETUP"),_T("FILEBRIGHTREVISE9"),szFilter,MAX_PATH)<=0) lstrcpy(szFilter,_T("Receiver Chroma Revise File(*.rcpb)|*.rcpb|")); while((pChr=_tcsrchr(szFilter,'|'))) *pChr=0; szFile[0]=0; strcpy(szDefExt,_T(".rcpb")); ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize=sizeof(ofn); ofn.hwndOwner=m_hWnd; ofn.lpstrFile=szFile; ofn.nMaxFile=MAX_PATH; ofn.lpstrFilter=szFilter; ofn.lpstrDefExt=szDefExt; ofn.nFilterIndex=1; ofn.Flags=OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_EXTENSIONDIFFERENT; lstrcpy(szBuf,g_szModPath); lstrcat(szBuf,_T("config")); ofn.lpstrInitialDir=szBuf; if(GetSaveFileName(&ofn)!=TRUE) return FALSE; hfile=CreateFile(szFile,GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL); if(hfile==INVALID_HANDLE_VALUE){ if(QueryINIText(_T("LEDREDDATA"),_T("ERRORSAVEFILE"),szBuf,MAX_PATH)<=0) lstrcpy(szBuf,_T("Failed to save!")); MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); return FALSE; } WriteFile(hfile,m_BrightnessRevise9,sizeof(BRIGHTNESSREVISE9),&size,NULL); if(size!=sizeof(BRIGHTNESSREVISE9)){ if(QueryINIText(_T("LEDREDDATA"),_T("ERRORSAVEFILE"),szBuf,MAX_PATH)<=0) lstrcpy(szBuf,_T("Failed to save!")); MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); CloseHandle(hfile); return FALSE; } CloseHandle(hfile); return TRUE; } ////////////////////////////////////////////////////////////////////////////////////////////////////////// if(QueryINIText(_T("LEDSETUP"),_T("FILEBRIGHTREVISE"),szFilter,MAX_PATH)<=0) lstrcpy(szFilter,_T("Receiver Bright Revise File(*.rrpb)|*.rrpb|")); while((pChr=_tcsrchr(szFilter,'|'))) *pChr=0; szFile[0]=0; ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize=sizeof(ofn); ofn.hwndOwner=m_hWnd; ofn.lpstrFile=szFile; ofn.nMaxFile=MAX_PATH; ofn.lpstrFilter=szFilter; ofn.lpstrDefExt=szDefExt; ofn.nFilterIndex=1; ofn.Flags=OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_EXTENSIONDIFFERENT; lstrcpy(szBuf,g_szModPath); lstrcat(szBuf,_T("config")); ofn.lpstrInitialDir=szBuf; if(GetSaveFileName(&ofn)!=TRUE) return FALSE; hfile=CreateFile(szFile,GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,(HANDLE) NULL); if(hfile==INVALID_HANDLE_VALUE){ if(QueryINIText(_T("LEDREDDATA"),_T("ERRORSAVEFILE"),szBuf,MAX_PATH)<=0) lstrcpy(szBuf,_T("Failed to save!")); MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); return FALSE; } bmpfile.bfType=0x4d42;///indicating the bitmap file bmpfile.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(rgb); bmpfile.bfSize=bmpfile.bfOffBits+sizeof(m_BrightnessRevise); bmpfile.bfReserved1=bmpfile.bfReserved2=0; bmpinfo.biSize=sizeof(BITMAPINFOHEADER); bmpinfo.biWidth=256; bmpinfo.biHeight=256*4; bmpinfo.biPlanes=1; bmpinfo.biBitCount=8; bmpinfo.biClrUsed=256; bmpinfo.biCompression=BI_RGB; bmpinfo.biSizeImage=sizeof(m_BrightnessRevise); bmpinfo.biClrImportant=0; bmpinfo.biXPelsPerMeter=bmpinfo.biYPelsPerMeter=0; for(size=0;size<256;size++){ rgb[size].rgbBlue=rgb[size].rgbGreen=rgb[size].rgbRed=(BYTE)size; rgb[size].rgbReserved=0; } WriteFile(hfile,&bmpfile,sizeof(BITMAPFILEHEADER),&size,NULL);///bitmap file header written if(size!=sizeof(BITMAPFILEHEADER)){ if(QueryINIText(_T("LEDREDDATA"),_T("ERRORSAVEFILE"),szBuf,MAX_PATH)<=0) lstrcpy(szBuf,_T("Failed to save!")); MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); CloseHandle(hfile); return FALSE; } WriteFile(hfile,&bmpinfo,sizeof(BITMAPINFOHEADER),&size,NULL);///bitmap info header written if(size!=sizeof(BITMAPINFOHEADER)){ if(QueryINIText(_T("LEDREDDATA"),_T("ERRORSAVEFILE"),szBuf,MAX_PATH)<=0) lstrcpy(szBuf,_T("Failed to save!")); MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); CloseHandle(hfile); return FALSE; } WriteFile(hfile,&rgb,sizeof(rgb),&size,NULL);///the real rgb value written if(size!=sizeof(rgb)){ if(QueryINIText(_T("LEDREDDATA"),_T("ERRORSAVEFILE"),szBuf,MAX_PATH)<=0) lstrcpy(szBuf,_T("Failed to save!")); MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); CloseHandle(hfile); return FALSE; } WriteFile(hfile,&m_BrightnessRevise,sizeof(BRIGHTNESSREVISE),&size,NULL); ///the practical revise data written if(size!=sizeof(BRIGHTNESSREVISE)){ if(QueryINIText(_T("LEDREDDATA"),_T("ERRORSAVEFILE"),szBuf,MAX_PATH)<=0) lstrcpy(szBuf,_T("Failed to save!")); MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); CloseHandle(hfile); return FALSE; } lstrcpy(m_szPath,szFile); SetWindowText(m_hWnd,m_szPath); return CloseHandle(hfile); //////////////////////////////////////////////////////////////////////////////////////////////////////// */ ///load file data to memory struct //if(strcmp(pChr,"txt")==0)//直接读取色度系数文件 //{ // CRedData::ReadChromParamFromPMFile(NULL,hfile,&m_BrightnessRevise,0); // lstrcpy(m_szPath,szFile); // SendDlgItemMessage(m_hWnd,IDC_COMBO1,CB_SETCURSEL,m_BrightnessRevise.btH,0); // SendDlgItemMessage(m_hWnd,IDC_COMBO2,CB_SETCURSEL,m_BrightnessRevise.btW,0); // SetWindowText(m_hWnd,m_szPath); // CloseHandle(hfile); // return TRUE; //} //ReadFile(hfile,&bmpfile,sizeof(BITMAPFILEHEADER),&size,NULL); //if(size!=sizeof(BITMAPFILEHEADER) || // bmpfile.bfType!=0x4d42 || // bmpfile.bfOffBits!=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(rgb) || // bmpfile.bfSize!=bmpfile.bfOffBits+sizeof(m_BrightnessRevise)){ // if(QueryINIText(_T("LEDREDDATA"),_T("ERRORLOADFILE"),szBuf,MAX_PATH)<=0) // lstrcpy(szBuf,_T("Failed to load!")); // MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); // CloseHandle(hfile); // return FALSE; //} //ReadFile(hfile,&bmpinfo,sizeof(BITMAPINFOHEADER),&size,NULL); //if(size!=sizeof(BITMAPINFOHEADER) || // bmpinfo.biSize!=sizeof(BITMAPINFOHEADER) || // bmpinfo.biWidth!=256 || // bmpinfo.biHeight!=256*4 || // bmpinfo.biPlanes!=1 || // bmpinfo.biBitCount!=8 || // bmpinfo.biClrUsed!=256 || // bmpinfo.biCompression!=BI_RGB || // bmpinfo.biSizeImage!=sizeof(m_BrightnessRevise)){ // if(QueryINIText(_T("LEDREDDATA"),_T("ERRORLOADFILE"),szBuf,MAX_PATH)<=0) // lstrcpy(szBuf,_T("Failed to load!")); // MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); // CloseHandle(hfile); // return FALSE; //} //for(size=0;size<256;size++){ // rgb[size].rgbBlue=rgb[size].rgbGreen=rgb[size].rgbRed=(BYTE)size; // rgb[size].rgbReserved=0; //} //ReadFile(hfile,&rgb,sizeof(rgb),&size,NULL); //if(size!=sizeof(rgb)){ // if(QueryINIText(_T("LEDREDDATA"),_T("ERRORLOADFILE"),szBuf,MAX_PATH)<=0) // lstrcpy(szBuf,_T("Failed to load!")); // MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); // CloseHandle(hfile); // return FALSE; //} //for(size=0;size<256;size++){ // if(rgb[size].rgbBlue!=(BYTE)size || // rgb[size].rgbGreen!=(BYTE)size || // rgb[size].rgbRed!=(BYTE)size){ // if(QueryINIText(_T("LEDREDDATA"),_T("ERRORLOADFILE"),szBuf,MAX_PATH)<=0) // lstrcpy(szBuf,_T("Failed to load!")); // MessageBox(m_hWnd,szBuf,_T(""),MB_OK|MB_ICONEXCLAMATION); // CloseHandle(hfile); // return FALSE; // } //} //ReadFile(hfile,&m_BrightnessRevise,sizeof(BRIGHTNESSREVISE),&size,NULL); /*lstrcpy(m_szPath,szFile); SendDlgItemMessage(m_hWnd,IDC_COMBO1,CB_SETCURSEL,m_BrightnessRevise.btH,0); SendDlgItemMessage(m_hWnd,IDC_COMBO2,CB_SETCURSEL,m_BrightnessRevise.btW,0); SetWindowText(m_hWnd,m_szPath); ResetLimit();*/ //ResetScroll(); //m_Screen.Draw(NULL);
trash code:
///////////////////////////////////////////////// //CProgressStatus *prgStatus; ///prgStatus=new CProgressStatus(g_hInstance); ///prgStatus=new CProgressStatus(g_hInstance); ///prgStatus.DoModal(NULL); ///CProgressStatus prgStatus(g_hInstance); //prgStatus->Create(NULL); ///prgStatus->DoShow(SW_SHOWNORMAL); /* RECT rect; POINT pt; GetClientRect(GetDesktopWindow(),&rect); MoveWindow(prgStatus->GetWin(),(rect.right-rect.left)/2-300,(rect.bottom-rect.top)/2,363,47,TRUE); at 10:13, October 15,2011 */ /* commented at 17:20, October 13,2011 HWND hwndPB,hwndParent; int cyVScroll; RECT rcClient; hwndParent=prgStatus->GetWin(); ///hwndParent=GetDesktopWindow(); GetClientRect(hwndParent,&rcClient); ///cyVScroll=GetSystemMetrics(SM_CYVSCROLL); hwndPB=CreateWindowEx(0, ///dwExStyle PROGRESS_CLASS ///class Name of window ,(LPTSTR)NULL /// window name ,WS_CHILD|WS_VISIBLE // dwStyle ,rcClient.left //x ,rcClient.top //y ,rcClient.right //nWidth ,rcClient.bottom //nHeight ,hwndParent ,(HMENU)0 ///hMenu ,g_hInstance ///窗口关联的模块的句柄 ,NULL); ///生成窗口的结构体参数 //SendMessage(hwndPB,PBM_SETRANGE,0,MAKELPARAM(0,100)); ///totalPackage=nArray*nColorPackage; int totalPrgBar=(pBrigRev->btH+1)*(pBrigRev->btW+1)*(btAddress-0x07)*4;///using the properation SendMessage(hwndPB,PBM_SETRANGE,0,MAKELPARAM(0,totalPrgBar)); SendMessage(hwndPB,PBM_SETSTEP,(WPARAM)4,0); SendMessage(hwndPB,PBM_STEPIT,0,0); ///////////////////////////////////////////////// */
December 7,2011,
256*256内270度旋转物理屏
/* //spining deasil ninety degree int i,j; BYTE *spinArray,*spinArrayTo; spinArray=new BYTE[lW*lH]; spinArrayTo=new BYTE[lW*lH]; ///put single color datas into the temporal space, spinArray; for(i=0;i<lW;i++)//height { for(j=0;j<lH;j++)//width { spinArray[i*lH+j]=nData[i*256+j]; } } //spining the spingArray for(i=0;i<lW;i++)//height, based on the perspective of original spinArray. { for(j=0;j<lH;j++)//width. { spinArrayTo[j*lW+lW-i-1]=spinArray[i*lH+j]; } } ///putting back the datas for(i=0;i<lH;i++)///height { for(j=0;j<lW;j++)///width { pData[i*256+j]=spinArrayTo[i*lW+j]; } } */
//anther way
for (int i=0;i<lW;i++)//目标高度 ///this algorithm is not correct for 270 degree rotation. { for (int j=0;j<lH;j++) { //memcpy(&pData[(i*256+j)*nodebyte],&nData[((j)*256+(lW-i-1))*nodebyte],nodebyte);
///(j,w-i-1)==>(i,j), 256*256的放大版旋转。 memcpy(&pData[((j)*256+(lW-i-1))*nodebyte],&nData[(i*256+j)*nodebyte],nodebyte);///singlebytes? } }
/// log file(January 16, 2012)
#ifdef _DEBUG DWORD lastError=0; HANDLE record=CreateFile("c:\\led_record.txt",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_ALWAYS,0,NULL); if(record==INVALID_HANDLE_VALUE) { lastError=GetLastError(); //return FALSE; } BOOL record_status=0; DWORD dwSend_record=0; DWORD distance=0; distance=::GetFileSize(record,NULL); SetFilePointer(record,distance,NULL,FILE_BEGIN); record_status=WriteFile(record,lpData,dwSize,&dwSend_record,NULL); if(record!=INVALID_HANDLE_VALUE) CloseHandle(record); #endif