现在的位置: 首页 > 综合 > 正文

需要练习的函数

2017年12月28日 ⁄ 综合 ⁄ 共 1406字 ⁄ 字号 评论关闭

1)

void CLEDErrInfoDlg::SaveTo()
{
    TCHAR szFilter[MAX_PATH],szFile[MAX_PATH],szDefExt[]=_T(".rrpb"),*pChr;
    TCHAR szBuf[MAX_PATH];
    OPENFILENAME ofn;
    HANDLE hfile;
   
//    RGBQUAD rgb[256];
    DWORD size;
    if(m_pShowData==NULL)
        return;
    //if(QueryINIText(_T("LEDSETUP"),_T("FILEBRIGHTREVISE"),szFilter,MAX_PATH)<=0)
        lstrcpy(szFilter,_T("save repotr(*.txt)|*.txt|"));
    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;
    if(GetSaveFileName(&ofn)!=TRUE)
        return ;

    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 ;
    }
    WriteFile(hfile,m_pShowData,strlen(m_pShowData),&size,NULL);
    CloseHandle(hfile);
}

 


2)SendDlgItemMessage, 发送消息到对话框上的指定控件。

  SendMessage()与其的区别是什么?

3)LVITEM.state=0x1000意味着什么?

4)


回想到,上周,在调用他的组件时,当密码不对,窗体会因某某内存不能读而崩溃掉。

     今天看到源代码后,明白了,他在密码出错的处理代码中,认为用户总是会输正确的密码,而不会提前关掉对话框!

 

【上篇】
【下篇】

抱歉!评论已关闭.