📄 she.cpp
字号:
SetDlgItemInt(IDC_NUMBER,m_nIndex[(point.x-rect.left)*256/(rect.right-rect.left)]);
SetDlgItemInt(IDC_PERCENT1,nTemp*100/nSum);
}
else
{
SetDlgItemInt(IDC_INPUT,0);
SetDlgItemInt(IDC_NUMBER,0);
SetDlgItemInt(IDC_PERCENT1,0);
}
CDialog::OnMouseMove(nFlags, point);
}
void CSHE::OnLButtonUp(UINT nFlags, CPoint point)
{
char str[36];
GetDlgItemText(IDC_CHANNEL,m_sChannel);
if(m_bIsBlackTri||m_bIsGrayTri||m_bIsWhiteTri)
{
if(m_sChannel=="主通道")
{
//写主通道的值
sprintf(str, "%d",m_nShade);
WritePrivateProfileString("pShe", "shadeM", str, InitDir2);
WritePrivateProfileString("pShe", "shadeR", str, InitDir2);
WritePrivateProfileString("pShe", "shadeG", str, InitDir2);
WritePrivateProfileString("pShe", "shadeB", str, InitDir2);
sprintf(str, "%d",m_nHighLight);
WritePrivateProfileString("pShe", "highM", str, InitDir2);
WritePrivateProfileString("pShe", "highR", str, InitDir2);
WritePrivateProfileString("pShe", "highG", str, InitDir2);
WritePrivateProfileString("pShe", "highB", str, InitDir2);
sprintf(str, "%d",m_nWhiteTriXPos);
WritePrivateProfileString("pShe", "whitePosM", str, InitDir2);
WritePrivateProfileString("pShe", "whitePosR", str, InitDir2);
WritePrivateProfileString("pShe", "whitePosG", str, InitDir2);
WritePrivateProfileString("pShe", "whitePosB", str, InitDir2);
sprintf(str, "%d",m_nBlackTriXPos);
WritePrivateProfileString("pShe", "blackPosM", str, InitDir2);
WritePrivateProfileString("pShe", "blackPosR", str, InitDir2);
WritePrivateProfileString("pShe", "blackPosG", str, InitDir2);
WritePrivateProfileString("pShe", "blackPosB", str, InitDir2);
((CAIEDlg*)m_pParent)->AdjustPreSH(m_nOutShade,m_nOutHighLight);
}
if(m_sChannel=="红通道")
{
sprintf(str, "%d",m_nShade);
WritePrivateProfileString("pShe", "shadeR", str, InitDir2);
sprintf(str, "%d",m_nHighLight);
WritePrivateProfileString("pShe", "highR", str, InitDir2);
sprintf(str, "%d",m_nWhiteTriXPos);
WritePrivateProfileString("pShe", "whitePosR", str, InitDir2);
sprintf(str, "%d",m_nBlackTriXPos);
WritePrivateProfileString("pShe", "blackPosR", str, InitDir2);
((CAIEDlg*)m_pParent)->AdjustPreSH(m_nOutShade,m_nOutHighLight);
}
if(m_sChannel=="绿通道")
{
sprintf(str, "%d",m_nShade);
WritePrivateProfileString("pShe", "shadeG", str, InitDir2);
sprintf(str, "%d",m_nHighLight);
WritePrivateProfileString("pShe", "highG", str, InitDir2);
sprintf(str, "%d",m_nWhiteTriXPos);
WritePrivateProfileString("pShe", "whitePosG", str, InitDir2);
sprintf(str, "%d",m_nBlackTriXPos);
WritePrivateProfileString("pShe", "blackPosG", str, InitDir2);
((CAIEDlg*)m_pParent)->AdjustPreSH(m_nOutShade,m_nOutHighLight);
}
if(m_sChannel=="蓝通道")
{
sprintf(str, "%d",m_nShade);
WritePrivateProfileString("pShe", "shadeB", str, InitDir2);
sprintf(str, "%d",m_nHighLight);
WritePrivateProfileString("pShe", "highB", str, InitDir2);
sprintf(str, "%d",m_nWhiteTriXPos);
WritePrivateProfileString("pShe", "whitePosB", str, InitDir2);
sprintf(str, "%d",m_nBlackTriXPos);
WritePrivateProfileString("pShe", "blackPosB", str, InitDir2);
((CAIEDlg*)m_pParent)->AdjustPreSH(m_nOutShade,m_nOutHighLight);
}
}
m_bIsBlackTri = FALSE;
m_bIsGrayTri = FALSE;
m_bIsWhiteTri = FALSE;
CDialog::OnLButtonUp(nFlags, point);
}
////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
void CSHE::OnSelchangeChannel()
{
int i;
HANDLE hDIB0;
LPSTR lpDIBHdr; // Pointer to BITMAPINFOHEADER
LPSTR lpDIBBits0; // Pointer to original DIB bits
CRect rect;
CRect rect2;
GetDlgItem(IDC_STATIC_HISTOGRAM)->GetClientRect(rect);
GetDlgItem(IDC_STATIC_HISTOGRAM)->ClientToScreen(rect);
ScreenToClient(rect);
GetDlgItemText(IDC_CHANNEL,m_sChannel);
int whiteM,blackM;
int whiteR,blackR;
int whiteG,blackG;
int whiteB,blackB;
whiteM=GetPrivateProfileInt("pShe","whitePosM",145,InitDir2);
blackM= GetPrivateProfileInt("pShe","blackPosM",0,InitDir2);
whiteR=GetPrivateProfileInt("pShe","whitePosR",145,InitDir2);
blackR= GetPrivateProfileInt("pShe","blackPosR",0,InitDir2);
whiteG=GetPrivateProfileInt("pShe","whitePosG",145,InitDir2);
blackG= GetPrivateProfileInt("pShe","blackPosG",0,InitDir2);
whiteB=GetPrivateProfileInt("pShe","whitePosB",145,InitDir2);
blackB= GetPrivateProfileInt("pShe","blackPosB",0,InitDir2);
if(m_sChannel=="主通道")
{
m_nBlackTriXPos=blackM;
m_nWhiteTriXPos=whiteM;
m_nShade=GetPrivateProfileInt("pShe","shadeM",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pShe","highM",255,InitDir2);
}
if(m_sChannel=="红通道")
{
m_nBlackTriXPos=blackR;
m_nWhiteTriXPos=whiteR;
m_nShade=GetPrivateProfileInt("pShe","shadeR",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pShe","highR",255,InitDir2);
}
if(m_sChannel=="绿通道")
{
m_nBlackTriXPos=blackG;
m_nWhiteTriXPos=whiteG;
m_nShade=GetPrivateProfileInt("pShe","shadeG",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pShe","highG",0,InitDir2);
}
if(m_sChannel=="蓝通道")
{
m_nBlackTriXPos=blackB;
m_nWhiteTriXPos=whiteB;
m_nShade=GetPrivateProfileInt("pShe","shadeB",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pShe","highB",0,InitDir2);
}
UpdateData(FALSE);
rect2.top = rect.bottom+2;
rect2.left = rect.left-13;
rect2.bottom = rect.bottom+23;
rect2.right = rect.right+13;
for(i=0;i<256;i++)
m_nIndex[i] = 0;
m_nMaxCount=1;
hDIB0 = pScanner->GetHandleofPreviewBMP();
if (hDIB0 == NULL)
{
for(i=0;i<256;i++)
m_nIndex[i] = 0;
m_nMaxCount = 1;
}
else
{
//hDIB0 = pScanner->GetHandleofPreviewBMP();
lpDIBHdr = (LPSTR) ::GlobalLock((HGLOBAL) hDIB0);
lpDIBBits0 = ::FindDIBBits(lpDIBHdr);
int cxDIB = (int) ::DIBWidth(lpDIBHdr); // Size of DIB - x
int cyDIB = (int) ::DIBHeight(lpDIBHdr); // Size of DIB - y
int nTemp;
if(pScanner->m_nColor==16777216)
{
nBitCount=cxDIB*cyDIB*3;
for(i=0;i<nBitCount;i++)
{
if(m_sChannel=="主通道")
{
nTemp=(int)(*(unsigned char*)(lpDIBBits0)*0.2+*(unsigned char*)(lpDIBBits0+1)*0.21+*(unsigned char*)(lpDIBBits0+2)*0.59);
}
if(m_sChannel=="红通道")
{
nTemp=*(unsigned char*)(lpDIBBits0);
}
if(m_sChannel=="绿通道")
{
nTemp=*(unsigned char*)(lpDIBBits0+1);
}
if(m_sChannel=="蓝通道")
{
nTemp=*(unsigned char*)(lpDIBBits0+2);
}
if(nTemp>255)
{
nTemp=255;
}
if(nTemp<0)
{
nTemp=0;
}
m_nIndex[nTemp]=m_nIndex[nTemp]+1;
i++;
i++;
lpDIBBits0++;
lpDIBBits0++;
lpDIBBits0++;
}
}//end if
else
{
nBitCount=cxDIB*cyDIB;
for(i=0;i<nBitCount;i++)
{
nTemp=*(unsigned char*)(lpDIBBits0);
if(nTemp>255)
{
nTemp=255;
}
if(nTemp<0)
{
nTemp=0;
}
m_nIndex[nTemp]=m_nIndex[nTemp]+1;
lpDIBBits0++;
}
}
m_nMaxCount=1;
::GlobalUnlock((HGLOBAL) hDIB0);
for(i=0;i<256;i++)
{
if(m_nMaxCount<m_nIndex[i])
m_nMaxCount = m_nIndex[i];
}
}
InvalidateRect( &rect2, TRUE );
InvalidateRect( &rect, TRUE );
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
void CSHE::quexiao1()
{
CRect rect;
CRect rect2;
GetDlgItem(IDC_STATIC_HISTOGRAM)->GetClientRect(rect);
GetDlgItem(IDC_STATIC_HISTOGRAM)->ClientToScreen(rect);
ScreenToClient(rect);
GetDlgItemText(IDC_CHANNEL,m_sChannel);
int whiteM,blackM;
int whiteR,blackR;
int whiteG,blackG;
int whiteB,blackB;
int channel;
whiteM=GetPrivateProfileInt("pSheX","whitePosM",145,InitDir2);
blackM= GetPrivateProfileInt("pSheX","blackPosM",0,InitDir2);
whiteR=GetPrivateProfileInt("pSheX","whitePosR",145,InitDir2);
blackR= GetPrivateProfileInt("pSheX","blackkPosR",0,InitDir2);
whiteG=GetPrivateProfileInt("pSheX","whitePosG",145,InitDir2);
blackG= GetPrivateProfileInt("pSheX","blackPosG",0,InitDir2);
whiteB=GetPrivateProfileInt("pSheX","whitePosB",145,InitDir2);
blackB= GetPrivateProfileInt("pSheX","blackPosB",0,InitDir2);
pScanner->m_nColor=GetPrivateProfileInt("color num","color",16777216,InitDir2);
channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
if(pScanner->m_nColor==16777216)
{
GetDlgItemText(IDC_CHANNEL,m_sChannel);
}
else
{
channel=GetPrivateProfileInt("xianzhen","channel",42,InitDir2);
if(channel==44)//红色通道
{
m_sChannel="红通道";
}
if(channel==42)//绿色通道
{
m_sChannel="绿通道";
}
if(channel==41)//蓝色通道
{
m_sChannel="蓝通道";
}
}
if(m_sChannel=="主通道")
{
m_nBlackTriXPos=blackM;
m_nWhiteTriXPos=whiteM;
m_nShade=GetPrivateProfileInt("pSheX","shadeM",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pSheX","highM",255,InitDir2);
}
if(m_sChannel=="红通道")
{
m_nBlackTriXPos=blackR;
m_nWhiteTriXPos=whiteR;
m_nShade=GetPrivateProfileInt("pSheX","shadeR",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pSheX","highR",255,InitDir2);
}
if(m_sChannel=="绿通道")
{
m_nBlackTriXPos=blackG;
m_nWhiteTriXPos=whiteG;
m_nShade=GetPrivateProfileInt("pSheX","shadeG",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pSheX","highG",0,InitDir2);
}
if(m_sChannel=="蓝通道")
{
m_nBlackTriXPos=blackB;
m_nWhiteTriXPos=whiteB;
m_nShade=GetPrivateProfileInt("pSheX","shadeB",0,InitDir2);
m_nHighLight=GetPrivateProfileInt("pSheX","highB",0,InitDir2);
}
UpdateData(FALSE);
rect2.top = rect.bottom+5;
rect2.left = rect.left-10;
rect2.bottom = rect.bottom+20;
rect2.right = rect.right+10;
InvalidateRect( &rect2, TRUE );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -