/* 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