精华内容
下载资源
问答
  • 展开全部相信广大2113网友都深受电脑的各5261种自动弹窗广告的4102“毒害”,它们经1653常在我专们使用电脑过程中突属然弹出,于是有了流氓弹出之名。很多网友不知道怎么除掉这些流氓弹窗。今天,李哥将“化身正义”...

    展开全部

    相信广大2113网友都深受电脑的各5261种自动弹窗广告的4102“毒害”,它们经1653在我们使用电脑过程中突然弹出,于是有了流氓弹出之名。很多网友不知道怎么除掉这些流氓弹窗。今天,李哥将“化身正义”,“拯救”深陷流氓弹窗的“苦海”中的网友们。一起来看看如何删除电脑流氓弹窗吧。

    我们这里就用电脑小白最常用的360安全卫士来演示,同类软件同类功能都是可以的。步骤如下:

    1、我们可以通过安全软件来删除,例如360,我们打开360里的软件管家

    2、然后切换到净化界面,选择全面净化。

    3、之后软件会自动进行扫描。

    4、然后勾选弹窗,点击一键净化即可。

    以上就是删除电脑流氓弹窗的步骤了。删除完后,感觉空气都清新多了。

    展开全文
  • 展开全部步骤一:分析数据的平稳性(单位根检验)。按照正规程序,面板数据模型在回归前需32313133353236313431303231363533e59b9ee7ad9431333433643732检验数据的平稳性。李子奈曾指出,一些非平稳的经济时间序列往往...

    展开全部

    步骤一:分析数据的平稳性(单位根检验)。

    按照正规程序,面板数据模型在回归前需32313133353236313431303231363533e59b9ee7ad9431333433643732检验数据的平稳性。李子奈曾指出,一些非平稳的经济时间序列往往表现出共同的变化趋势,而这些序列间本身不一定有直接的关联,此时,对这些数据进行回归,尽管有较高的R平方,但其结果是没有任何实际意义的。

    步骤二:协整检验或模型修正。

    情况一:如果基于单位根检验的结果发现变量之间是同阶单整的,那么我们可以进行协整检验。协整检验是考察变量间长期均衡关系的方法。

    所谓的协整是指若两个或多个非平稳的变量序列,其某个线性组合后的序列呈平稳性。此时我们称这些变量序列间有协整关系存在。因此协整的要求或前提是同阶单整。

    步骤三:面板模型的选择与回归。

    面板数据模型的选择通常有三种形式:

    一种是混合估计模型(Pooled Regression Model)。如果从时间上看,不同个体之间不存在显著性差异;从截面上看,不同截面之间也不存在显著性差异,那么就可以直接把面板数据混合在一起用普通最小二乘法(OLS)估计参数。

    一种是固定效应模型(Fixed Effects Regression Model)。如果对于不同的截面或不同的时间序列,模型的截距不同,则可以采用在模型中添加虚拟变量的方法估计回归参数。

    一种是随机效应模型。

    扩展资料:

    面板数据模型可以使用LLC、IPS、Breintung、ADF-Fisher 和PP-Fisher5种方法进行面板单位根检验。

    其中LLC-T 、BR-T、IPS-W 、ADF-FCS、PP-FCS 、H-Z 分别指Levin, Lin & Chu t* 统计量、Breitung t 统计量、lm Pesaran & Shin W 统计量。

    ADF- Fisher Chi-square统计量、PP-Fisher Chi-square统计量、Hadri Z统计量,并且Levin, Lin & Chu t* 统计量、Breitung t统计量的原假设为存在普通的单位根过程。

    lm Pesaran & Shin W 统计量、ADF- Fisher Chi-square统计量、PP-Fisher Chi-square统计量的原假设为存在有效的单位根过程, Hadri Z统计量的检验原假设为不存在普通的单位根过程。

    展开全文
  • 最近自己想更换Eclipse的背景,于是百度了一下,发现大部分... 第一步,首先利用eclipse自带的黑色背景,将界面全部换为黑色,进入eclipse选中Window→Preferences→展开General→双击Appearance(如果你们没有选中 En

            最近自己想更换Eclipse的背景,于是百度了一下,发现大部分都是更换编辑界面背景的,或者直接使用Eclipse自带的dark主题的,感觉还是不好看,于是自己就折腾了一下,换了一个风格。

            第一步,首先利用eclipse自带的黑色背景,将界面全部换为黑色,进入eclipse选中Window→Preferences→展开General→双击Appearance(如果你们没有选中 Enable     theming就勾选再重启eclipse,之后再进行上面操作)→在Theme里面可以选择dark主题,之后界面就全部变成了黑色了。

           第二步,我们改一下编辑区域的颜色,原版的看着不舒服。这时候有三个选择方案:

                  1.点击主题下载地址,这里面有着各种各样的主题,进去选择Download,点击Top Picks选择java,之后你看见的就是各种热门主题了,点击喜欢的主题进去,选中下载,完成之后在eclipse里面选中import导入,在General里面选中Preferences之后点击next,之后出现下面这个界面,选中自己下载主体所在的路径之后即可。下面是我的主题风格。

                  2.第二个方法就是在eclipse里面下载里面的配色风格。在Eclipse里点击Help→Eclipse Marketplace→输入theme,下载第一个Eclipse Color Theme,之后下载成功后重启eclipse,选中Window→Preferences→展开General→单击Appearance展开→选中第一个就可以更改代码区的配色了,有很多种风格哦。

                  3.第三个方法就比较麻烦啦,就是手动更改各种配色方案。

                     Eclipse背景颜色修改: 操作界面默认颜色为白色。对于我们长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以我经常会改变workspace的背景色,使眼睛舒服一些。设置方法如下: 打开window→Preference→展开General标签→展开Editors→选中 Test Editors→选中面板中Appearance color options(其中是各种板块颜色的设置)其中有一项是background color,根据自己的喜好选择颜色。 看网上很多人推荐色调:85,饱和度:1 2 3,亮度:2 0 5 ,是豆沙绿的,试了一下感觉还不错。还有其他选项,比如对错误提示的颜色样式,如果你想改可尝试更改一下。 我就不一一列举了

    展开全文
  • 展开全部步骤和程序:打开VC程序——文件——新建——工程中的MFC AppWizard(exe),在工程下面的框中输入工程名(假定32313133353236313431303231363533e78988e69d8331333238653965工程名为111),点确定——选多重文档...

    展开全部

    步骤和程序:

    打开VC程序——文件——新建——工程中的MFC AppWizard(exe),在工程下面的框中输入工程名(假定32313133353236313431303231363533e78988e69d8331333238653965工程名为111),点确定——选多重文档,点下一个——后面都点下一个直到完成确定,基本框架就完成了,下面就加代码。

    这时VC界面上左边框的下面有三个按钮:ClassView、ResourceView和FileView,ClassView里面是工程111的类:CAdoutDlg、CChildFrame、CMy111App、CMy111Doc、CMy111View和Globals;点ResourceView里面是资源类:Accelerator、Dialog、Icon、Menu、String Table、Toolbar和Version;点开FileView里面是文件类:Source File、Header Files、Resource Files和ReadMe.txt。

    点界面的“工程”按钮——添加工程——新建——选C++ Source File,在文件下面的框里输入文件名(如DIBAPI),点“结束”,这样在FileView中的Source Files里面就多了一个DIBAPI.cpp文件,所有的代码都加在该文件中。再点界面的“工程”按钮——添加工程——新建——选C/C++ Header File,在文件下面的框里输入文件名(和前面的文件名必须一致),点“结束”,这样在FileView中的Header Files里面就多了一个DIBAPI.h文件,该文件是DIBAPI.cpp的头文件。

    点开DIBAPI.h文件,里面是空白的,把如下代码考入文件中:

    //DIBAPI.h

    #ifndef _INC_DIBAPI

    #define _INC_DIBAPI

    DECLARE_HANDLE(HDIB);

    #define PALVERSION 0x300

    #define IS_WIN30_DIB(lpbi) ((*(LPDWORD)(lpbi))==sizeof(BITMAPINFOHEADER))

    #define RECTWIDTH(lpRect) ((lpRect)->right-(lpRect)->left)

    #define RECTHEIGHT(lpRect) ((lpRect)->bottom-(lpRect)->top)

    #define WIDTHBYTES(bits) (((bits)+31)/32*4)

    #define DIB_HEADER_MARKER ((WORD)('M'<<8)|'B')

    BOOL WINAPI PaintDIB(HDC,LPRECT,HDIB,LPRECT,CPalette* pPal);

    BOOL WINAPI CreateDIBPalette(HDIB hDIB,CPalette* cPal);

    LPSTR WINAPI FindDIBBits(LPSTR lpbi);

    DWORD WINAPI DIBWidth(LPSTR lpDIB);

    DWORD WINAPI DIBHeight(LPSTR lpDIB);

    WORD WINAPI PaletteSize(LPSTR lpbi);

    WORD WINAPI DIBNumColors(LPSTR lpbi);

    HGLOBAL WINAPI CopyHandle(HGLOBAL h);

    BOOL WINAPI SaveDIB(HDIB hDib,CFile& file);

    HDIB WINAPI ReadDIBFile(CFile& file);

    //在此处输入自己的函数声明

    #endif//!_INC_DIBAPI

    上面这些函数是实现图像的读取、存储等图像处理的基本功能的,你将自己需要的函数也输入到“//在此处输入自己的函数声明”的下面。

    点开DIBAPI.cpp文件,里面是空白的,将如下代码加入其中:

    //DIBAPI.cpp

    #include "stdafx.h"

    #include "DIBAPI.h"

    WORD WINAPI DIBNumColors(LPSTR lpbi)

    {

    WORD wBitCount;

    if(IS_WIN30_DIB(lpbi))

    {

    DWORD dwClrUsed;

    dwClrUsed=((LPBITMAPINFOHEADER)lpbi)->biClrUsed;

    if(dwClrUsed)

    return (WORD)dwClrUsed;

    }

    if(IS_WIN30_DIB(lpbi))

    wBitCount=((LPBITMAPINFOHEADER)lpbi)->biBitCount;

    else

    wBitCount=((LPBITMAPCOREHEADER)lpbi)->bcBitCount;

    switch(wBitCount)

    {

    case 1:

    return 2;

    case 4:

    return 16;

    case 8:

    return 256;

    default:

    return 0;

    }

    }

    WORD WINAPI PaletteSize(LPSTR lpbi)

    {

    if(IS_WIN30_DIB(lpbi))

    return (WORD)(DIBNumColors(lpbi)*sizeof(RGBQUAD));

    else

    return (WORD)(DIBNumColors(lpbi)*sizeof(RGBTRIPLE));

    }

    LPSTR WINAPI FindDIBBits(LPSTR lpbi)

    {

    return (lpbi+*(LPDWORD)lpbi+::PaletteSize(lpbi));

    }

    DWORD WINAPI DIBWidth(LPSTR lpDIB)

    {

    LPBITMAPINFOHEADER lpbmi;

    LPBITMAPCOREHEADER lpbmc;

    lpbmi=(LPBITMAPINFOHEADER)lpDIB;

    lpbmc=(LPBITMAPCOREHEADER)lpDIB;

    if(IS_WIN30_DIB(lpDIB))

    return lpbmi->biWidth;

    else

    return (DWORD)lpbmc->bcWidth;

    }

    DWORD WINAPI DIBHeight(LPSTR lpDIB)

    {

    LPBITMAPINFOHEADER lpbmi;

    LPBITMAPCOREHEADER lpbmc;

    lpbmi=(LPBITMAPINFOHEADER)lpDIB;

    lpbmc=(LPBITMAPCOREHEADER)lpDIB;

    if(IS_WIN30_DIB(lpDIB))

    return lpbmi->biHeight;

    else

    return (DWORD)lpbmc->bcHeight;

    }

    BOOL WINAPI PaintDIB(HDC hDC,LPRECT lpDCRect,HDIB hDIB,LPRECT lpDIBRect,CPalette* pPal)

    {

    LPSTR lpDIBHdr;

    LPSTR lpDIBBits;

    BOOL bSuccess=FALSE;

    HPALETTE hPal=NULL;

    HPALETTE hOldPal=NULL;

    if(hDIB==NULL)

    return FALSE;

    lpDIBHdr=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

    lpDIBBits=FindDIBBits(lpDIBHdr);

    if(pPal!=NULL)

    {

    hPal=(HPALETTE)pPal->m_hObject;

    hOldPal=::SelectPalette(hDC,hPal,TRUE);

    }

    ::SetStretchBltMode(hDC,COLORONCOLOR);

    if((RECTWIDTH(lpDCRect)==RECTWIDTH(lpDIBRect))&&(RECTHEIGHT(lpDCRect)==RECTHEIGHT(lpDIBRect)))

    {

    bSuccess=::SetDIBitsToDevice(hDC,lpDCRect->left,lpDCRect->top,RECTWIDTH(lpDCRect),RECTHEIGHT(lpDCRect),lpDIBRect->left,\

    (int)DIBHeight(lpDIBHdr)-lpDIBRect->top-RECTHEIGHT(lpDIBRect),0,(WORD)DIBHeight(lpDIBHdr),\

    lpDIBBits,(LPBITMAPINFO)lpDIBHdr,DIB_RGB_COLORS);

    }

    else

    {

    bSuccess=::StretchDIBits(hDC,lpDCRect->left,lpDCRect->top,RECTWIDTH(lpDCRect),RECTHEIGHT(lpDCRect),lpDIBRect->left,\

    lpDIBRect->top,RECTWIDTH(lpDIBRect),RECTHEIGHT(lpDIBRect),\

    lpDIBBits,(LPBITMAPINFO)lpDIBHdr,DIB_RGB_COLORS,SRCCOPY);

    }

    ::GlobalUnlock((HGLOBAL)hDIB);

    if(hOldPal)

    ::SelectPalette(hDC,hOldPal,TRUE);

    GlobalUnlock(hDIB);

    return bSuccess;

    }

    BOOL WINAPI CreateDIBPalette(HDIB hDIB,CPalette* pPal)

    {

    LPLOGPALETTE lpPal;

    HANDLE hLogPal;

    HPALETTE hPal=NULL;

    LPSTR lpbi;

    LPBITMAPINFO lpbmi;

    LPBITMAPCOREINFO lpbmc;

    BOOL bWinStyleDIB;

    int i;

    WORD wNumColors;

    BOOL bResult=FALSE;

    if(hDIB==NULL)

    return FALSE;

    lpbi=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

    lpbmi=(LPBITMAPINFO)lpbi;

    lpbmc=(LPBITMAPCOREINFO)lpbi;

    wNumColors=DIBNumColors(lpbi);

    bWinStyleDIB=IS_WIN30_DIB(lpbi);

    if(wNumColors!=0)

    {

    hLogPal=::GlobalAlloc(GHND,sizeof(LOGPALETTE)+sizeof(PALETTEENTRY)*wNumColors);

    if(hLogPal==0)

    {

    ::GlobalUnlock((HGLOBAL)hDIB);

    return FALSE;

    }

    lpPal=(LPLOGPALETTE)::GlobalLock(hLogPal);

    lpPal->palVersion=PALVERSION;

    lpPal->palNumEntries=(WORD)wNumColors;

    bWinStyleDIB=IS_WIN30_DIB(lpbi);

    for(i=0;i

    {

    if(bWinStyleDIB)

    {

    lpPal->palPalEntry[i].peRed=lpbmi->bmiColors[i].rgbRed;

    lpPal->palPalEntry[i].peGreen=lpbmi->bmiColors[i].rgbGreen;

    lpPal->palPalEntry[i].peBlue=lpbmi->bmiColors[i].rgbBlue;

    lpPal->palPalEntry[i].peFlags=0;

    }

    else

    {

    lpPal->palPalEntry[i].peRed=lpbmc->bmciColors[i].rgbtRed;

    lpPal->palPalEntry[i].peGreen=lpbmc->bmciColors[i].rgbtGreen;

    lpPal->palPalEntry[i].peBlue=lpbmc->bmciColors[i].rgbtBlue;

    lpPal->palPalEntry[i].peFlags=0;

    }

    }

    bResult=pPal->CreatePalette(lpPal);

    ::GlobalUnlock((HGLOBAL)hLogPal);

    ::GlobalFree((HGLOBAL)hLogPal);

    }

    ::GlobalUnlock((HGLOBAL)hDIB);

    return bResult;

    }

    HGLOBAL WINAPI CopyHandle(HGLOBAL h)

    {

    if(h==NULL)

    return NULL;

    DWORD dwLen=::GlobalSize((HGLOBAL)h);

    HGLOBAL hCopy=::GlobalAlloc(GHND,dwLen);

    if(hCopy!=NULL)

    {

    void* lpCopy=::GlobalLock((HGLOBAL)hCopy);

    void* lp=::GlobalLock((HGLOBAL)h);

    memcpy(lpCopy,lp,dwLen);

    ::GlobalUnlock(hCopy);

    ::GlobalUnlock(h);

    }

    return hCopy;

    }

    BOOL WINAPI SaveDIB(HDIB hDib,CFile& file)

    {

    BITMAPFILEHEADER bmfHdr;

    LPBITMAPINFOHEADER lpBI;

    DWORD dwDIBSize;

    if(!hDib)

    return FALSE;

    lpBI=(LPBITMAPINFOHEADER)::GlobalLock((HGLOBAL)hDib);

    if(lpBI==NULL)

    return FALSE;

    if(!IS_WIN30_DIB(lpBI))

    {

    ::GlobalUnlock((HGLOBAL)hDib);

    return FALSE;

    }

    bmfHdr.bfType=DIB_HEADER_MARKER;

    dwDIBSize=*(LPDWORD)lpBI+::PaletteSize((LPSTR)lpBI);

    if((lpBI->biCompression==BI_RLE8)||(lpBI->biCompression==BI_RLE4))

    dwDIBSize+=lpBI->biSizeImage;

    else

    {

    DWORD dwBmBitsSize;

    dwBmBitsSize=WIDTHBYTES((lpBI->biWidth)*((DWORD)lpBI->biBitCount))*lpBI->biHeight;

    dwDIBSize+=dwBmBitsSize;

    lpBI->biSizeImage=dwBmBitsSize;

    }

    bmfHdr.bfSize=dwDIBSize+sizeof(BITMAPFILEHEADER);

    bmfHdr.bfReserved1=0;

    bmfHdr.bfReserved2=0;

    bmfHdr.bfOffBits=(DWORD)sizeof(BITMAPFILEHEADER)+lpBI->biSize+::PaletteSize((LPSTR)lpBI);

    TRY

    {

    file.Write((LPSTR)&bmfHdr,sizeof(BITMAPFILEHEADER));

    file.WriteHuge(lpBI,dwDIBSize);

    }

    CATCH(CFileException,e)

    {

    ::GlobalUnlock((HGLOBAL)hDib);

    THROW_LAST();

    }

    END_CATCH

    ::GlobalUnlock((HGLOBAL)hDib);

    return TRUE;

    }

    HDIB WINAPI ReadDIBFile(CFile& file)

    {

    BITMAPFILEHEADER bmfHeader;

    DWORD dwBitsSize;

    HDIB hDIB;

    LPSTR pDIB;

    dwBitsSize=file.GetLength();

    if(file.Read((LPSTR)&bmfHeader,sizeof(bmfHeader))!=sizeof(bmfHeader))

    return NULL;

    if(bmfHeader.bfType!=DIB_HEADER_MARKER)

    return NULL;

    hDIB=(HDIB)::GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,dwBitsSize);

    if(hDIB==0)

    return NULL;

    pDIB=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

    if(file.ReadHuge(pDIB,dwBitsSize-sizeof(BITMAPFILEHEADER))!=dwBitsSize-sizeof(BITMAPFILEHEADER))

    {

    ::GlobalUnlock((HGLOBAL)hDIB);

    ::GlobalFree((HGLOBAL)hDIB);

    return NULL;

    }

    ::GlobalUnlock((HGLOBAL)hDIB);

    return hDIB;

    }

    //在此处输入自己的函数定义

    上面是DIBAPI.h头文件中声明的函数的定义,你将自己的函数定义加到“//在此处输入自己的函数定义”后面。

    下面加相应的消息映射函数,点Ctrl+W键,会出现MFC ClassWizard对话框,点Message Maps,在Class name下面的框中选择CMy111Doc,在Messages里面选中OnOpenDocument,然后点击Add Function按钮就加入了相应的消息映射函数,同样的方法以此加入OnSaveDocument、DeleteContents、CanCloseFrame相应的消息函数,点“确定”即可。

    点开111Doc.cpp文件,里面有相应的消息映射函数定义位置,在函数CMy111Doc::CMy111Doc()里输入以下代码:

    m_refColorBKG=0x00808080;

    m_hDIB=NULL;

    m_palDIB=NULL;

    m_sizeDoc=CSize(1,1);

    在函数CMy111Doc::~CMy111Doc()里输入以下代码:

    if(m_hDIB!=NULL)

    ::GlobalFree((HGLOBAL)m_hDIB);

    if(m_palDIB!=NULL)

    delete m_palDIB;

    在函数BOOL CMy111Doc::OnOpenDocument(LPCTSTR lpszPathName)里/ TODO: Add your specialized creation code here下面添加如下代码:

    CFile file;

    CFileException fe;

    if(!file.Open(lpszPathName,CFile::modeRead|CFile::shareDenyWrite,&fe))

    {

    ReportSaveLoadException(lpszPathName,&fe,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);

    return FALSE;

    }

    DeleteContents();

    BeginWaitCursor();

    TRY

    {

    m_hDIB=::ReadDIBFile(file);

    }

    CATCH(CFileException,eLoad)

    {

    file.Abort();

    EndWaitCursor();

    ReportSaveLoadException(lpszPathName,eLoad,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);

    m_hDIB=NULL;

    return FALSE;

    }

    END_CATCH

    InitDIBData();

    EndWaitCursor();

    if(m_hDIB==NULL)

    {

    CString strMsg;

    strMsg="读取图像时出错!可能是不支持该类型的图像文件!";

    MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);

    return FALSE;

    }

    SetPathName(lpszPathName);

    SetModifiedFlag(FALSE);

    在函数BOOL CMy111Doc::OnSaveDocument(LPCTSTR lpszPathName)里// TODO: Add your specialized code here and/or call the base class后面添加如下代码:

    CFile file;

    CFileException fe;

    if(!file.Open(lpszPathName,CFile::modeCreate|CFile::modeReadWrite|CFile::shareExclusive,&fe))

    {

    ReportSaveLoadException(lpszPathName,&fe,TRUE,AFX_IDP_INVALID_FILENAME);

    return FALSE;

    }

    BOOL bSuccess=FALSE;

    TRY

    {

    BeginWaitCursor();

    bSuccess=::SaveDIB(m_hDIB,file);

    file.Close();

    }

    CATCH(CException,eSave)

    {

    file.Abort();

    EndWaitCursor();

    ReportSaveLoadException(lpszPathName,eSave,TRUE,AFX_IDP_FAILED_TO_SAVE_DOC);

    return FALSE;

    }

    END_CATCH

    EndWaitCursor();

    SetModifiedFlag(FALSE);

    if(!bSuccess)

    {

    CString strMsg;

    strMsg="无法保存BMP图像";

    MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);

    }

    点开ClassView,右键点击CMy111Doc类,点Add Member Variable出现添加成员变量对话框,在Variable Type下的框中输入变量类型名HDIB,在Variable Name中输入变量名m_hDIB,在Access中选中Public就在CMy111Doc中加入了公共成员变量m_hDIB;同样加入int类型的m_nColorIndex、COLORREF类型的m_refColorBKG公共成员变量,再添加保护成员变量(在Access中选中Protected)CSize类的m_sizeDoc、CPalette*类的m_palDIB变量。右键点击CMy111Doc类,点Add Member Function出现添加成员函数对话框,在Function Type下的框中输入函数类型名void,在Function Declaration中输入函数名InitDIBData(),在Access中选中Public就在CMy111Doc中加入了公共成员函数InitDIBData();同样方法加入void类型的公共成员函数ReplaceHDIB(HDIB hDIB)。在111Doc.cpp中加入函数的代码,InitDIBData()里加如下代码:

    if(m_palDIB!=NULL)

    {

    delete m_palDIB;

    m_palDIB=NULL;

    }

    if(m_hDIB==NULL)

    return;

    LPSTR lpDIB=(LPSTR)::GlobalLock((HGLOBAL)m_hDIB);

    if(::DIBWidth(lpDIB)>INT_MAX||::DIBHeight(lpDIB)>INT_MAX)

    {

    ::GlobalUnlock((HGLOBAL)m_hDIB);

    ::GlobalFree((HGLOBAL)m_hDIB);

    m_hDIB=NULL;

    CString strMsg;

    strMsg="BMP图像太大!";

    MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);

    return;

    }

    m_sizeDoc=CSize((int)::DIBWidth(lpDIB),(int)::DIBHeight(lpDIB));

    ::GlobalUnlock((HGLOBAL)m_hDIB);

    m_palDIB=new CPalette;

    if(m_palDIB==NULL)

    {

    ::GlobalFree((HGLOBAL)m_hDIB);

    m_hDIB=NULL;

    return;

    }

    if(::CreateDIBPalette(m_hDIB,m_palDIB)==NULL)

    {

    delete m_palDIB;

    m_palDIB=NULL;

    return;

    }

    在函数ReplaceHDIB(HDIB hDIB)中加入如下代码:

    if(m_hDIB!=NULL)

    ::GlobalFree((HGLOBAL)m_hDIB);

    m_hDIB=hDIB;

    在CMy111doc.h的

    // Attributes

    public:

    下面加入如下代码:

    HDIB GetHDIB() const

    {

    return m_hDIB;

    }

    CPalette* GetDocPalette() const

    {

    return m_palDIB;

    }

    CSize GetDocSize() const

    {

    return m_sizeDoc;

    }

    注意要在111Doc.h前加上#include "DIBAPI.h"语句(在class CMy111Doc:public CDocument语句前)

    下面为CMy111View中的函数 void CMy111View::OnDraw(CDC* pDC)中添加如下代码:

    BeginWaitCursor();

    CMy111* pDoc = GetDocument();

    ASSERT_VALID(pDoc);

    // TODO: add draw code for native data here

    HDIB hDIB=pDoc->GetHDIB();

    if(hDIB!=NULL)

    {

    LPSTR lpDIB=(LPSTR)::GlobalLock((HGLOBAL)hDIB);

    int cxDIB=(int)::DIBWidth(lpDIB);

    int cyDIB=(int)::DIBHeight(lpDIB);

    ::GlobalUnlock((HGLOBAL)hDIB);

    CRect rcDIB;

    rcDIB.top=rcDIB.left=0;

    rcDIB.right=cxDIB;

    rcDIB.bottom=cyDIB;

    CRect rcDest;

    if(pDC->IsPrinting())

    {

    int cxPage=pDC->GetDeviceCaps(HORZRES);

    int cyPage=pDC->GetDeviceCaps(VERTRES);

    int cxInch=pDC->GetDeviceCaps(LOGPIXELSX);

    int cyInch=pDC->GetDeviceCaps(LOGPIXELSY);

    rcDest.top=rcDest.left=0;

    rcDest.bottom=(int)(((double)cyDIB*cxPage*cyInch)/((double)cxDIB*cxInch));

    rcDest.right=cxPage;

    int temp=cyPage-(rcDest.bottom-rcDest.top);

    rcDest.bottom+=temp/2;

    rcDest.top+=temp/2;

    }

    else

    {

    rcDest=rcDIB;

    }

    ::PaintDIB(pDC->m_hDC,&rcDest,pDoc->GetHDIB(),&rcDIB,pDoc->GetDocPalette());

    }

    EndWaitCursor();

    以上是关于图像打开、显示、保存的有关步骤和代码。

    在111.cpp文件的InitInstance()函数的ParseCommandLine(cmdInfo);语句下输入语句

    cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;

    则启动时不自动打开一个空文档。

    显示图像直方图步骤:

    1、 点击ResourceView,右键点击Dialog,选Insert Dialog 在属性对话框中将ID改为ID_HIST,对话框名称改为“直方图”

    2、 在工具栏中点“插入”-“新建类”,输入类名,并选Base Class为CDialog,Dialog ID为ID_HIST。这样就将对话框和类联系起来了,在该对话框中拖入一Edit控件,将其ID设为IDC_HISTSHOW;

    3、 快捷键“Ctrl+W”,出现MFC ClassWizard对话框,在Messages栏中分别选WM_INITDIALOG和WM_Paint,再点击“Add Function”,即将对话框初始化和画图函数加入对话框类之中。

    4、 在Hist.h文件“public:”下面输入如下变量定义:

    LONG m_lCount[256];

    char* m_lpDIBBits;

    LONG m_lWidth;

    LONG m_lHeight;

    int m_iIsDraging;

    CDlgIntensity(CWnd* pParent = NULL);

    5、 打开Hist.cpp程序,在CHist::OnInitDialog()函数中“// TODO: Add extra initialization here”前将如下代码拷贝进去:

    unsigned char* lpSrc;

    LONG i;

    LONG j;

    6、 在“// TODO: Add extra initialization here”后将如下代码拷贝进去:

    CWnd* pWnd=GetDlgItem(IDC_HISTSHOW);

    CRect rect;

    GetClientRect(rect);

    ClientToScreen(&rect);

    for(i=0;i<256;i++)

    {

    m_lCount[i]=0;

    }

    LONG lLineBytes;

    lLineBytes=WIDTHBYTES(m_lWidth*8);

    for(i=0;i

    {

    for(j=0;j

    {

    lpSrc=(unsigned char*)m_lpDIBBits+lLineBytes*i+j;

    m_lCount[*(lpSrc)]++;

    }

    }

    m_iIsDraging=0;

    7、在CHist::OnPaint()函数“CPaintDC dc(this);”前将如下代码拷如其中:

    CString str;

    LONG i;

    LONG lMaxCount=0;

    LONG m_iLowGray=0;

    LONG m_iUpGray=255;

    在CHist::OnPaint()函数“// TODO: Add your message handler code here”后将如下代码拷如其中:

    CWnd* pWnd=GetDlgItem(IDC_ HISTSHOW);

    CDC* pDC=pWnd->GetDC();

    pWnd->Invalidate();

    pWnd->UpdateWindow();

    pDC->Rectangle(0,0,330,300);

    CPen* pPenRed=new CPen;

    pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));

    CPen* pPenBlue=new CPen;

    pPenBlue->CreatePen(PS_SOLID,1,RGB(0,0,255));

    CPen* pPenGreen=new CPen;

    pPenGreen->CreatePen(PS_SOLID,1,RGB(0,255,0));

    CGdiObject* pOldPen=pDC->SelectObject(pPenRed);

    pDC->MoveTo(10,10);

    pDC->LineTo(10,280);

    pDC->LineTo(320,280);

    str.Format("0");

    pDC->TextOut(10,283,str);

    str.Format("50");

    pDC->TextOut(60,283,str);

    str.Format("100");

    pDC->TextOut(110,283,str);

    str.Format("150");

    pDC->TextOut(160,283,str);

    str.Format("200");

    pDC->TextOut(210,283,str);

    str.Format("255");

    pDC->TextOut(265,283,str);

    for(i=0;i<256;i+=5)

    {

    if((i&1)==0)

    {

    pDC->MoveTo(i+10,280);

    pDC->LineTo(i+10,284);

    }

    else

    {

    pDC->MoveTo(i+10,280);

    pDC->LineTo(i+10,282);

    }

    }

    pDC->MoveTo(315,275);

    pDC->LineTo(320,280);

    pDC->LineTo(315,285);

    pDC->MoveTo(10,10);

    pDC->LineTo(5,15);

    pDC->MoveTo(10,10);

    pDC->LineTo(15,15);

    for(i=m_iLowGray;i<=m_iUpGray;i++)

    {

    if(m_lCount[i]>lMaxCount)

    {

    lMaxCount=m_lCount[i];

    }

    }

    pDC->MoveTo(10,25);

    pDC->LineTo(14,25);

    str.Format("%d",lMaxCount);

    pDC->TextOut(11,26,str);

    pDC->SelectObject(pPenGreen);

    pDC->MoveTo(m_iLowGray+10,25);

    pDC->LineTo(m_iLowGray+10,280);

    pDC->MoveTo(m_iUpGray+10,25);

    pDC->LineTo(m_iUpGray+10,280);

    pDC->SelectObject(pPenBlue);

    if(lMaxCount>0)

    {

    for(i=m_iLowGray;i<=m_iUpGray;i++)

    {

    pDC->MoveTo(i+10,280);

    pDC->LineTo(i+10,281-(int)(m_lCount[i]*256/lMaxCount));

    }

    }

    pDC->SelectObject(pOldPen);

    delete pPenRed;

    delete pPenBlue;

    delete pPenGreen;

    8、点开ResourceView中的Menu,出现IDR_MAINFRAME和 IDR_MY111TYPE,双击IDR_MY111TYPE就出现了程序界面,有文件、编辑、查看、窗口、帮助按钮。点“查看”下面的虚线框右键——点“属性”,输入标题(直方图),和ID(大写英文,如ID_VIEW_HIST),这样就将按钮和程序通过ID联系起来了,点击该按钮,就会执行相应的程序。下面为该按钮添加函数:点Ctrl+W ,出现MFC ClassWizard对话框,选Class name为CMy111View,在Object IDs对应的选项中选中设置的ID(如为ID_VIEW_HIST),在Messages选项中选中COMMAND,然后点击“Add Function”按钮,选默认设置,就为ID_VIEW_HIST添加了相应的函数OnViewHist()。该函数在111View.cpp文件中定义,在函数void CMy111View:: OnViewHist()添加如下代码:

    // TODO: Add your command handler code here

    CMy111Doc* pDoc=GetDocument();

    if(pDoc->m_hDIB==NULL)

    {

    MessageBox("请先打开一幅256色的BMP图像!","系统提示",MB_ICONINFORMATION|MB_OK);

    return;

    }

    LPSTR lpDIB;

    LPSTR lpDIBBits;

    lpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());

    lpDIBBits=::FindDIBBits(lpDIB);

    if(::DIBNumColors(lpDIB)!=256)

    {

    MessageBox("目前只支持查看256色位图灰度直方图!","系统提示",MB_ICONINFORMATION|MB_OK);

    ::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());

    return;

    }

    BeginWaitCursor();

    CHist dlgPara;

    dlgPara.m_lpDIBBits=lpDIBBits;

    dlgPara.m_lWidth=::DIBWidth(lpDIB);

    dlgPara.m_lHeight=::DIBHeight(lpDIB);

    // dlgPara.m_iLowGray=0;

    // dlgPara.m_iUpGray=255;

    if(dlgPara.DoModal()!=IDOK)

    {

    return;

    }

    ::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());

    EndWaitCursor();

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • 实现步骤 循环列表在页面中无法获取到dom,所以封装组件,获取dom。 1.父组件代码 <template> <div class="container"> <div class="list" v-for="(item, index) in dataList" :key="index"> ...
  • 本文转载自:CSDN论坛 ...2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。
  • 展开全部进行邮件合并的简单步骤如下:1、切换到“邮件”菜单下,点击“选择收件人”,62616964757a686964616fe78988e69d8331333433623231接着点击“使用现有列表”,然后打开excel信息表。2、选择信息表中个人信息...
  • Oracle11G完全卸载步骤

    万次阅读 多人点赞 2018-06-17 10:18:47
    2、 开始->程序->Oracle_OraDB11g_Home1->OracleInstallation Products->Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、运行reg...
  • oracle卸载干净步骤

    2019-06-19 11:25:35
    2、 开始->程序->Oracle_OraDB11g_Home1->OracleInstallation Products->Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 3、运行regedit,...
  • Oracle卸载详细步骤

    千次阅读 2018-11-20 19:14:46
    完全卸载oracle11g步骤: ...2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目...
  • oracle卸载步骤

    2016-11-16 11:35:00
    3.在产品清单窗口中,单击全部展开,除了OraDb11g_home1外,勾选其他项目,单击删除 4.按Windows徽标键和R键,打开运行窗口,输入regedit,打开注册表,依次展开HKEY_LOCAL_MACHINE\SOFTWARE,找到oracle,删除之 ...
  • 完全卸载Oracle步骤

    2018-01-16 10:34:09
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、 运行regedit
  • Oracle的卸载步骤

    2020-05-18 18:23:26
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、 运行regedit,选择HKEY_...
  • 完全卸载oracle步骤

    2015-11-28 10:18:23
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、 运行regedit,选择
  • oracle的删除步骤

    2015-12-02 11:46:37
    完全卸载oracle11g步骤: ...2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5
  • Oracle 完全卸载步骤

    2016-03-02 14:07:24
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、 运行regedit
  • 展开全部画数轴的步骤是:1、画一条直线,如下图e68a84e8a2ad62616964757a686964616f31333431356663:2、规定正方向,如下图:3、规定原点位置,如下图:4、确定单位长度,如下图:有以下三要素:1、正方向;...
  • 网上找了一些效果,自己也稍作了修改。便拿来与网友分享分享。... 不使用maxLine的原因是maxLine会控制显示文本的行数,不方便后边使用动画展开全部内容。因此这里TextView的高度也因该为wrap_content。
  • 展开全部步骤1:下载用于在2113Eclipse中开发Python的插件PyDev。步骤2:解压5261python。将解压后的features和plugins文件4102夹中的1653内容拷贝到Eclipse安装目录下相同的文件夹中即安装PyDev插件成功。步骤3:...
  • 完全卸载oracle11g步骤

    万次阅读 多人点赞 2012-07-27 10:48:06
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、 运行regedit
  • Oracle11g完全卸载步骤

    2019-09-30 22:42:05
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。5、 运行regedit,...
  • 完全卸载oracle10g步骤

    2021-04-18 23:18:02
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、 运行regedit,选择HKEY_...
  • 彻底卸载oracle11g步骤

    2019-08-30 16:17:33
    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。 5、 运行regedit,选择...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,040
精华内容 416
关键字:

展开全部步骤