但别人的程序不会,而且些程序在XP下也不会有响声.

解决方案 »

  1.   

    点了不该点的地方,系统自动调用MessageBeep()函数。
      

  2.   

    大家帮忙分析一下:
    void CMyDlg::OnItemchangedDevicelist(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    // TODO: Add your control notification handler code here int nItem;
    if(m_devList.GetItemCount()>0){
    nItem=RetriveTargetMAC(MacAdrs);

    if(nItem>=0)
    {

    //////////////////
    CString szCnt;
    CString sz;
    sz.LoadString(IDS_SELECTDEVICE);
    szCnt.Format(sz,m_Dev_count);
    m_selcnt.SetWindowText(szCnt);
    ////////////
    int nSel = pNMListView->iItem;
    if(m_devList.GetItemCount()>0&&nSel>=0){
    LPTSTR* arrpsz =m_devList.GetTextArray(nSel);
    LPTSTR pszText = arrpsz[0];
    memcpy(m_strLastSerial,pszText,10);
    }
    if(g_bSearch)
    {
    int nSelcount = m_devList.GetSelectedCount();
    if(nSelcount>0)
    {
    CString csCnt;
    if(nSelcount>1)
    {
    sz.LoadString(IDS_SELECTMORE);
    csCnt.Format(sz,nSelcount);
    }
    else{
    sz.LoadString(IDS_SELECTONE);
    csCnt.Format(sz,nSelcount);
    }
    m_selcnt.SetWindowText(csCnt);
    OnInval();
    }
    return;
    }else
    {
    int nSelcount = m_devList.GetSelectedCount();
    CString csCnt;
    CString cs;
    cs.LoadString(IDS_SELECTDEVICE2);
    csCnt.Format(cs,nSelcount,m_Dev_count);
    m_selcnt.SetWindowText(csCnt);
    OnInval();
    }

    CString szDevinfo="";
    char strMac[128]={0};
    if(m_devList.GetSelectedCount()==1/*&&m_devList.GetItemState(nSel,LVIS_SELECTED)*/){
    sprintf(strMac,"%02X-%02X-%02X-%02X-%02X-%02X",(int)dev_info[nItem].hw_info.mac_adrs[0]
    ,(int)dev_info[nItem].hw_info.mac_adrs[1]
    ,(int)dev_info[nItem].hw_info.mac_adrs[2]
    ,(int)dev_info[nItem].hw_info.mac_adrs[3]
    ,(int)dev_info[nItem].hw_info.mac_adrs[4]
    ,(int)dev_info[nItem].hw_info.mac_adrs[5]);
    sz.LoadString(IDS_DEVICEINFO);
    szDevinfo.Format(sz,dev_info[nItem].hw_info.hw_ver,dev_info[nItem].sw_ver,strMac);
    //szDevinfo="Hardware Version:"+dev_info[nItem].hw_info.hw_ver+"\n"+"Firmware Version:"+dev_info[nItem].sw_ver+"\n"+"Mac Address:"+strMac;
    m_ed.SetWindowText(szDevinfo);
    }else
    {
    m_ed.SetWindowText("");
    }
    OnInval();
    }else
    {
    CString szCnt;
    CString sz;
    if(!g_bSearch){
    sz.LoadString(IDS_SELECTNULL);
    szCnt.Format(sz,m_Dev_count);
    m_ed.SetWindowText("");
    m_selcnt.SetWindowText(szCnt);
    }else
    {
    sz.LoadString(IDS_SELECTONE);
    szCnt.Format(sz,0);
    m_selcnt.SetWindowText(szCnt);
    }
    OnInval();
    }
    }
    *pResult = 0;
    }
    void CMyDlg::OnClickDevicelist(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    // TODO: Add your control notification handler code here
    //AfxMessageBox("0000000");
        NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    if(m_devList.GetItemCount()<1)
    {
    return;
    }
    if(m_devList.GetSelectedCount()<1)
    {//禁止取消选定最后一项
    m_devList.SetItemState(pNMListView->iItem, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
    } int nSel = pNMListView->iItem;
    if(m_devList.GetItemCount()>nSel&&nSel>=0){
    LPTSTR* arrpsz =m_devList.GetTextArray(nSel);
    LPTSTR pszText = arrpsz[0];
    memcpy(m_strLastSerial,pszText,10);
    } int nItem;
    nItem=RetriveTargetMAC(MacAdrs);
    if(nItem<0)
    {
    return;
    }
    ////////////////
    if(g_bSearch)
    {
    return;
    }
    ////////////////////
    int nSelcount = m_devList.GetSelectedCount();
    CString csCnt;
    CString cs;
    cs.LoadString(IDS_SELECTDEVICE2);
    csCnt.Format(cs,nSelcount,m_Dev_count);
    m_selcnt.SetWindowText(csCnt);
    OnInval();

    //////////获得最后选定项目的序列号以便下次定位到这一项////////// if(m_devList.GetSelectedCount()==1)//是否选定了多项。
    {
    CString szDevinfo="";
    char strMac[128]={0};
        CString sz;
    sprintf(strMac,"%02X-%02X-%02X-%02X-%02X-%02X",(int)dev_info[nItem].hw_info.mac_adrs[0]
    ,(int)dev_info[nItem].hw_info.mac_adrs[1]
    ,(int)dev_info[nItem].hw_info.mac_adrs[2]
    ,(int)dev_info[nItem].hw_info.mac_adrs[3]
    ,(int)dev_info[nItem].hw_info.mac_adrs[4]
    ,(int)dev_info[nItem].hw_info.mac_adrs[5]);
    sz.LoadString(IDS_DEVICEINFO);
    szDevinfo.Format(sz,dev_info[nItem].hw_info.hw_ver,dev_info[nItem].sw_ver,strMac);
    //szDevinfo="Hardware Version:"+dev_info[nItem].hw_info.hw_ver+"\n"+"Firmware Version:"+dev_info[nItem].sw_ver+"\n"+"Mac Address:"+strMac;
    m_ed.SetWindowText(szDevinfo);
    }else
    {m_ed.SetWindowText("");}
    OnInval(); *pResult = 0;
    }int CSet_CenterDlg::FindLastSel(unsigned char* szSerial)
    {
    int i=0;
    for(;i<m_Dev_count;i++){
    LPTSTR* arrpsz =m_devList.GetTextArray(i);
    LPTSTR pszText = arrpsz[0];
    if(memcmp(szSerial,pszText,10)==0)   break ;
    }
    if(i==m_Dev_count)
    i=0;
    return i;
    }
      

  3.   

    对了,这种情况只在老板的电脑繁体中文vista下出现.是不是设置的问题,是哪项设置的问题.