关闭

需要练习的函数

393人阅读 评论(0) 收藏 举报

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)


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

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

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:61231次
    • 积分:1230
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:16篇
    • 译文:0篇
    • 评论:1条
    最新评论