亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myprogdlg.cpp

?? 上位機軟件 for avricp 根據功能設定熔絲
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
// MYPROGDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MYPROG.h"
#include "MYPROGDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();
	
	// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA
	
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL
	
	// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMYPROGDlg dialog

CMYPROGDlg::CMYPROGDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMYPROGDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMYPROGDlg)
	m_csCom = _T("");
	m_csMessage = _T("");
	m_hexfile = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMYPROGDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMYPROGDlg)
	DDX_Control(pDX, IDC_COMBO_DEVICE, m_ComboBox_Device);
	DDX_Control(pDX, IDC_OPENS, m_opens);
	DDX_Control(pDX, IDC_PROGRESS1, m_nProgress);
	DDX_Text(pDX, IDC_STATIC_COM, m_csCom);
	DDX_Text(pDX, IDC_STATIC_MESSAGE, m_csMessage);
	DDX_Text(pDX, IDC_EDIT_HEX, m_hexfile);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMYPROGDlg, CDialog)
//{{AFX_MSG_MAP(CMYPROGDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_NOTIFY(NM_CLICK, IDC_LIST3, OnClickList3)
ON_BN_CLICKED(IDOK, OnOpens)
ON_CBN_SELCHANGE(IDC_COMBO_DEVICE, OnSelchangeComboDevice)
ON_BN_CLICKED(IDC_BUTTON_EXPLORER, OnButtonExplorer)
ON_BN_CLICKED(IDC_BUTTON_SREAD, OnButtonSread)
ON_BN_CLICKED(IDC_BUTTON_SPROG, OnButtonSprog)
ON_BN_CLICKED(IDC_BUTTON_ERASE, OnButtonErase)
ON_CBN_SELCHANGE(IDC_COMBO_LOCK1, OnSelchangeComboLock1)
ON_CBN_SELCHANGE(IDC_COMBO_LOCK2, OnSelchangeComboLock2)
ON_CBN_SELCHANGE(IDC_COMBO_LOCK3, OnSelchangeComboLock3)
ON_BN_CLICKED(IDC_BUTTON_FPROG, OnButtonFprog)
ON_BN_CLICKED(IDC_BUTTON_FREAD, OnButtonFread)
ON_BN_CLICKED(IDC_BUTTON_FVERI, OnButtonFveri)
ON_BN_CLICKED(IDC_BUTTON_EPROG, OnButtonEprog)
ON_BN_CLICKED(IDC_BUTTON_EVERI, OnButtonEveri)
ON_BN_CLICKED(IDC_BUTTON_EREAD, OnButtonEread)
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
ON_BN_CLICKED(IDC_CHECK3, OnCheck3)
ON_BN_CLICKED(IDC_CHECK4, OnCheck4)
ON_BN_CLICKED(IDC_CHECK5, OnCheck5)
ON_BN_CLICKED(IDC_CHECK6, OnCheck6)
ON_CBN_SELCHANGE(IDC_COMBO_FUSE1, OnSelchangeComboFuse1)
ON_CBN_SELCHANGE(IDC_COMBO_FUSE2, OnSelchangeComboFuse2)
ON_CBN_SELCHANGE(IDC_COMBO_FUSE3, OnSelchangeComboFuse3)
ON_CBN_SELCHANGE(IDC_COMBO_FUSE4, OnSelchangeComboFuse4)
ON_BN_CLICKED(IDC_CHECK0, OnCheck0)
ON_BN_CLICKED(IDC_CHECK7, OnCheck7)
ON_BN_CLICKED(IDC_CHECK8, OnCheck8)
ON_BN_CLICKED(IDC_CHECK9, OnCheck9)
ON_BN_CLICKED(IDC_CHECK10, OnCheck10)
ON_BN_CLICKED(IDC_CHECK11, OnCheck11)
ON_BN_CLICKED(IDC_CHECK12, OnCheck12)
ON_BN_CLICKED(IDC_CHECK13, OnCheck13)
ON_BN_CLICKED(IDC_CHECK14, OnCheck14)
ON_BN_CLICKED(IDC_CHECK15, OnCheck15)
	ON_BN_CLICKED(IDC_CHECK16, OnCheck16)
	ON_BN_CLICKED(IDC_CHECK17, OnCheck17)
	ON_BN_CLICKED(IDC_CHECK18, OnCheck18)
	ON_BN_CLICKED(IDC_CHECK19, OnCheck19)
	ON_BN_CLICKED(IDC_CHECK20, OnCheck20)
	ON_BN_CLICKED(IDC_CHECK21, OnCheck21)
	ON_BN_CLICKED(IDC_CHECK22, OnCheck22)
	ON_BN_CLICKED(IDC_CHECK23, OnCheck23)
	ON_BN_CLICKED(IDC_CHECK_L0, OnCheckL0)
	ON_BN_CLICKED(IDC_CHECK_L1, OnCheckL1)
	ON_BN_CLICKED(IDC_CHECK_L2, OnCheckL2)
	ON_BN_CLICKED(IDC_CHECK_L3, OnCheckL3)
	ON_BN_CLICKED(IDC_CHECK_L4, OnCheckL4)
	ON_BN_CLICKED(IDC_CHECK_L5, OnCheckL5)
	ON_BN_CLICKED(IDC_CHECK_L6, OnCheckL6)
ON_BN_CLICKED(IDC_OPENS, OnOpens)
	ON_BN_CLICKED(IDC_CHECK_L7, OnCheckL7)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMYPROGDlg message handlers


BOOL CMYPROGDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	
	// Add "About..." menu item to system menu.
	
	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);
	
	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}
	
	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	//鎖位部分
	lockGroup=(CButton*)GetDlgItem(IDC_STATIC_GROUPLOCK);     
	lock=(CButton*)GetDlgItem(IDC_STATIC_LOCK);  
	lockb[0 ]=(CButton*)GetDlgItem(IDC_CHECK_L0);     
	lockb[1 ]=(CButton*)GetDlgItem(IDC_CHECK_L1);     
	lockb[2 ]=(CButton*)GetDlgItem(IDC_CHECK_L2);     
	lockb[3 ]=(CButton*)GetDlgItem(IDC_CHECK_L3);     
	lockb[4 ]=(CButton*)GetDlgItem(IDC_CHECK_L4);     
	lockb[5 ]=(CButton*)GetDlgItem(IDC_CHECK_L5);     
	lockb[6 ]=(CButton*)GetDlgItem(IDC_CHECK_L6);     
	lockb[7 ]=(CButton*)GetDlgItem(IDC_CHECK_L7); 
	
    lock1Combo = (CComboBox*)GetDlgItem(IDC_COMBO_LOCK1);
    lock2Combo = (CComboBox*)GetDlgItem(IDC_COMBO_LOCK2);
    lock3Combo = (CComboBox*)GetDlgItem(IDC_COMBO_LOCK3);
	
	
	//熔絲部分
	fuseGroup=(CButton*)GetDlgItem(IDC_STATIC_GROUPFUSE);     
	fuse0=(CButton*)GetDlgItem(IDC_STATIC_FUSE0);  
	fuse1=(CButton*)GetDlgItem(IDC_STATIC_FUSE1);  
	fuse2=(CButton*)GetDlgItem(IDC_STATIC_FUSE2);  
	check[0 ] = (CButton*)GetDlgItem(IDC_CHECK0 );     
	check[1 ] = (CButton*)GetDlgItem(IDC_CHECK1 );     
	check[2 ] = (CButton*)GetDlgItem(IDC_CHECK2 );     
	check[3 ] = (CButton*)GetDlgItem(IDC_CHECK3 );     
	check[4 ] = (CButton*)GetDlgItem(IDC_CHECK4 );     
	check[5 ] = (CButton*)GetDlgItem(IDC_CHECK5 );     
	check[6 ] = (CButton*)GetDlgItem(IDC_CHECK6 );     
	check[7 ] = (CButton*)GetDlgItem(IDC_CHECK7 );     
	check[8 ] = (CButton*)GetDlgItem(IDC_CHECK8 );     
	check[9 ] = (CButton*)GetDlgItem(IDC_CHECK9 );     
	check[10] = (CButton*)GetDlgItem(IDC_CHECK10);     
	check[11] = (CButton*)GetDlgItem(IDC_CHECK11);     
	check[12] = (CButton*)GetDlgItem(IDC_CHECK12);  
	check[13] = (CButton*)GetDlgItem(IDC_CHECK13);     
	check[14] = (CButton*)GetDlgItem(IDC_CHECK14);     
	check[15] = (CButton*)GetDlgItem(IDC_CHECK15);     
	check[16] = (CButton*)GetDlgItem(IDC_CHECK16);     
	check[17] = (CButton*)GetDlgItem(IDC_CHECK17);     
	check[18] = (CButton*)GetDlgItem(IDC_CHECK18);     
	check[19] = (CButton*)GetDlgItem(IDC_CHECK19);     
	check[20] = (CButton*)GetDlgItem(IDC_CHECK20);     
	check[21] = (CButton*)GetDlgItem(IDC_CHECK21);     
	check[22] = (CButton*)GetDlgItem(IDC_CHECK22);     
	check[23] = (CButton*)GetDlgItem(IDC_CHECK23);     
    fuse1Combo = (CComboBox*)GetDlgItem(IDC_COMBO_FUSE1);
    fuse2Combo = (CComboBox*)GetDlgItem(IDC_COMBO_FUSE2);
    fuse3Combo = (CComboBox*)GetDlgItem(IDC_COMBO_FUSE3);
    fuse4Combo = (CComboBox*)GetDlgItem(IDC_COMBO_FUSE4);
	
	
    //操作
	sreadButton=(CButton*)GetDlgItem(IDC_BUTTON_SREAD);     
	sprogButton=(CButton*)GetDlgItem(IDC_BUTTON_SPROG);     
	eraseButton=(CButton*)GetDlgItem(IDC_BUTTON_ERASE);   

	//////////////////////////////////////////////////////////////////////////////////////////////////
	m_nProgress.SetPos(0);
	EnableFlash(FALSE);
	EnableEeprom(FALSE);
	DisableLockAndFuse();
	CButton*  OpensButton=(CButton*)GetDlgItem(IDC_OPENS);
	OpensButton->EnableWindow(FALSE);
	SetDlgItemText(IDC_STATIC_SW, "");
	SetDlgItemText(IDC_STATIC_HW, "");
	SetDlgItemText(IDC_STATIC_NAME, "");
	
	/*
	LONG RegOpenKeyEx(
	HKEY hKey,         // handle to open key
	LPCTSTR lpSubKey,  // address of name of subkey to open
	DWORD ulOptions,   // reserved
	REGSAM samDesired, // security access mask
	PHKEY phkResult    // address of handle to open key
	);
	
	  LONG RegEnumValue(
	  HKEY hKey,              // handle to key to query
	  DWORD dwIndex,          // index of value to query
	  LPTSTR lpValueName,     // address of buffer for value string
	  LPDWORD lpcbValueName,  // address for size of value buffer
	  LPDWORD lpReserved,     // reserved
	  LPDWORD lpType,         // address of buffer for type code
	  LPBYTE lpData,          // address of buffer for value data
	  LPDWORD lpcbData        // address for size of data buffer
	  );
	  LONG RegQueryValueEx(
	  HKEY hKey,           // handle to key to query
	  LPTSTR lpValueName,  // address of name of value to query
	  LPDWORD lpReserved,  // reserved
	  LPDWORD lpType,      // address of buffer for value type
	  LPBYTE lpData,       // address of data buffer
	  LPDWORD lpcbData     // address of data buffer size
	  );
	  
	*/
#define MAXKEYPATH  99
	HKEY    hKey    = HKEY_LOCAL_MACHINE;
	LPCTSTR     lpSubKey  = "HARDWARE\\DEVICEMAP\\SERIALCOMM";
	REGSAM    samDesired  = KEY_READ;
	
	DWORD   dwIndex = 0;
	LPDWORD   lpType  =new DWORD;   *lpType= REG_SZ;
	LPBYTE  COMName =new BYTE[80];
	LPDWORD lpcbData=new DWORD; *lpcbData=80;
    
	char   COMObject[MAXKEYPATH];   
	LPSTR   lpszDescBuff   =   NULL;   
	DWORD   rc;   
	DWORD   dwBufSize=MAXKEYPATH; 
	CListCtrl* p1;
	rc   =   RegOpenKeyEx(hKey,lpSubKey,0,samDesired,&hKey); 
	
	if   (rc   ==   ERROR_SUCCESS)   
	{   
		p1= (CListCtrl*)GetDlgItem(IDC_LIST3);
		//p1->SetBkColor(RGB(255,255,255));
		//p1->SetTextBkColor(RGB(255,255,255));
		while   (RegEnumValue(hKey,dwIndex++,COMObject,&dwBufSize,NULL,lpType,COMName,lpcbData)==ERROR_SUCCESS)   
		{   
			CString ts=COMName;
			p1->InsertItem(dwIndex,ts,dwIndex);
			if(dwIndex==1)SetDlgItemText(IDC_STATIC_COM, ts);
			dwBufSize   =   MAXKEYPATH;
		}   
		RegCloseKey(hKey);   
	}   
	else   
	{
		//DisplayMessage("未能檢測串口!");
	}
	if(dwIndex!=0)OpensButton->EnableWindow(TRUE);
	else  SetDlgItemText(IDC_STATIC_COM, "無串口");
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CMYPROGDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CMYPROGDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting
		
		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
		
		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;
		
		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CMYPROGDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CMYPROGDlg::OnClickList3(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    CListCtrl* pList =
        (CListCtrl*) GetDlgItem(IDC_LIST3);
    int nSelected = pNMListView->iItem;
    if (nSelected >= 0) {
        CString strItem = pList->GetItemText(nSelected, 0);
		UpdateData(TRUE);
		m_csCom=strItem;
        UpdateData(FALSE);
		
    }
	
	*pResult = 0;
}
//打開串口并獲取編程器信息
void CMYPROGDlg::OnOpens() 
{
	// TODO: Add your control notification handler code here
	CString ss1;//,ss2;
	UpdateData(TRUE);
	UpdateData(FALSE);
	m_opens.GetWindowText(ss1);
	
	if (ss1=="聯機")
	{
		if(avrp.com.Open(m_csCom,19200))//打開串口并使用默認設置
		{
			//com.SetWnd(AfxGetMainWnd()->m_hWnd); //設置消息處理窗口
			
			
			
			long major,minor;
			CString cstr;
			//讀軟件標識
			cstr = avrp.readProgrammerID();
			if(cstr == "1234567")return;
			SetDlgItemText(IDC_STATIC_NAME, cstr);
			//讀軟件版本
			if(!avrp.programmerSoftwareVersion(&major,&minor))return;
			cstr.Empty();
			cstr.Insert(0,(char)major);
			cstr.Insert(1,'.');
			cstr.Insert(2,(char)minor);
			SetDlgItemText(IDC_STATIC_SW, cstr);
			//讀硬件版本
			if(!avrp.programmerHardwareVersion(&major,&minor))return;
			cstr.Empty();
			cstr.Insert(0,(char)major);
			cstr.Insert(1,'.');
			cstr.Insert(2,(char)minor);
			SetDlgItemText(IDC_STATIC_HW, cstr);
			//讀器件列表
			for(int i = 0;i<avrp.devicesupportNumber;i++)
			{
				avrp.device.SetDevice(avrp.devicesupport[i]);
				m_ComboBox_Device.AddString(avrp.device.getDeviceName());
			}
			if(m_ComboBox_Device.GetCount())
			{
				int n=m_ComboBox_Device.FindString(0,"ATmega16");
				if(n == CB_ERR)
				m_ComboBox_Device.SetCurSel(0);
				else m_ComboBox_Device.SetCurSel(n);
				OnSelchangeComboDevice();
			}
			//改變串口操作狀態
			m_opens.SetWindowText("斷開");
			CListCtrl* pList = (CListCtrl*) GetDlgItem(IDC_LIST3);
			pList->EnableWindow(FALSE);
			
		}
		else 
		{
			AfxMessageBox( "聯機失敗:通信端口無法打開!");
		}
	}
	else
	{
		avrp.com.Close();
		m_opens.SetWindowText("聯機");
		CListCtrl* pList = (CListCtrl*) GetDlgItem(IDC_LIST3);
		pList->EnableWindow();
		SetDlgItemText(IDC_STATIC_SW, "");
		SetDlgItemText(IDC_STATIC_HW, "");
		SetDlgItemText(IDC_STATIC_NAME, "");
        while(m_ComboBox_Device.GetCount())
		{
			m_ComboBox_Device.DeleteString(0);
		}
		m_nProgress.SetPos(0);
		EnableFlash(FALSE);
		EnableEeprom(FALSE);
		DisableLockAndFuse();
	}
	
}
void CMYPROGDlg::ReadSignature()
{
		//讀器件標識
	char ts[60];
		if(!avrp.enterProgrammingMode())
		{
			SetDlgItemText(IDC_STATIC_SIGNATURE, "");
			return;
		}
		long s0,s1,s2;
		bool r = avrp.isRightSignature( &s0, &s1, &s2 );
		sprintf(ts," %02X %02X %02X",(UCHAR)s0,(UCHAR)s1,(UCHAR)s2);
		SetDlgItemText(IDC_STATIC_SIGNATURE, ts);
		avrp.device.getSignature(&s0,&s1,&s2);
		if(r )
		{
			
			sprintf(ts,"%s 標識:%02X %02X %02X!",avrp.device.getDeviceName(),
				(unsigned char)s0,(unsigned char)s1,(unsigned char)s2);
			UpdateData(TRUE);
			m_csMessage	= ts;
			UpdateData(FALSE);
		}
		else
		{
			
			sprintf(ts,"%s 標識不匹配:%02X %02X %02X!",avrp.device.getDeviceName(),
				(unsigned char)s0,(unsigned char)s1,(unsigned char)s2);
			UpdateData(TRUE);
			m_csMessage	= ts;
			UpdateData(FALSE);
		}
			ReadLockAndFuse();
		avrp.leaveProgrammingMode();

}

//選擇器件
void CMYPROGDlg::OnSelchangeComboDevice() 
{
	// TODO: Add your control notification handler code here
	char ts[60];
	if(m_ComboBox_Device.GetCount())
	{
		m_ComboBox_Device.GetLBText(m_ComboBox_Device.GetCurSel(),ts);
		avrp.device.SetDevice(ts);
		
		EnableFlash();
		EnableEeprom();
		DisableLockAndFuse();
		EnableLockAndFuse();
		ReadSignature();
		//OnButtonSread();
	}
	
}




//打開HEX文件
void CMYPROGDlg::OnButtonExplorer() 
{
	// CFileDialog( BOOL bOpenFileDialog,            false=保存,true=打開
	//           LPCTSTR lpszDefExt = NULL,          缺省擴展名
	//           LPCTSTR lpszFileName = NULL,        文件名
	//           DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,  讀寫方式 
	//           LPCTSTR lpszFilter = NULL,          文件流
	//           CWnd* pParentWnd = NULL );          
	
	CString m_edit2temp=m_hexfile;
	CString sFilter="Hexfile(*.hex)|*.hex|All Files (*.*)|*.*|";
	CFileDialog dlg(true,"bin",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,(LPCTSTR)sFilter,this);
	
	UpdateData(TRUE);
	if(dlg.DoModal()==IDOK)
		m_hexfile=dlg.GetPathName();
	else
		m_hexfile=m_edit2temp;
	UpdateData(FALSE);
	
	
}


//使能或禁止Flash操作按鈕
void CMYPROGDlg::EnableFlash(BOOL EN)
{
	CButton *flashGroup=(CButton*)GetDlgItem(IDC_STATIC_GROUPFLASH);     
	flashGroup->EnableWindow(EN);
	
	if(EN)
	{
		char s[30];
		sprintf(s,"Flash:%d",avrp.device.getFlashSize());
		flashGroup->SetWindowText(s);
	}
	else flashGroup->SetWindowText("Flash");
	
	CButton *fprogButton=(CButton*)GetDlgItem(IDC_BUTTON_FPROG);     
	CButton *fveriButton=(CButton*)GetDlgItem(IDC_BUTTON_FVERI);   
	CButton *freadButton=(CButton*)GetDlgItem(IDC_BUTTON_FREAD);     
	
	fprogButton->EnableWindow(EN);
	fveriButton->EnableWindow(EN);
	freadButton->EnableWindow(EN);
	
}
//使能或禁止Eeprom操作按鈕
void CMYPROGDlg::EnableEeprom(BOOL EN)
{
	CButton *eepromGroup=(CButton*)GetDlgItem(IDC_STATIC_GROUPEEPROM);     
	CButton *eprogButton=(CButton*)GetDlgItem(IDC_BUTTON_EPROG);     
	CButton *everiButton=(CButton*)GetDlgItem(IDC_BUTTON_EVERI);   
	CButton *ereadButton=(CButton*)GetDlgItem(IDC_BUTTON_EREAD);     
	
	if(avrp.device.getEEPROMSize() && EN)
	{
		eepromGroup->EnableWindow(EN);
		eprogButton->EnableWindow(EN);
		everiButton->EnableWindow(EN);
		ereadButton->EnableWindow(EN);
		char s[30];
		sprintf(s,"EEPROM:%d",avrp.device.getEEPROMSize());
		eepromGroup->SetWindowText(s);
	}
	else 
	{
		eepromGroup->EnableWindow(FALSE);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩久久免费av| 国产精品久久久久久久岛一牛影视 | 狠狠色丁香婷婷综合| 波多野结衣欧美| 4438x亚洲最大成人网| 国产精品乱码一区二区三区软件 | 亚洲图片欧美视频| 成人免费视频一区二区| 日韩欧美一区二区视频| 亚洲精选一二三| 国产成人av一区二区三区在线| 制服丝袜激情欧洲亚洲| 一区二区三区四区视频精品免费 | 香蕉成人伊视频在线观看| 99久久伊人精品| 国产欧美一区二区精品婷婷| 另类中文字幕网| 欧美美女黄视频| 国产精品77777竹菊影视小说| 欧美一区二区高清| 亚洲成a人在线观看| 欧美中文字幕一区二区三区亚洲| 国产精品成人在线观看| 国产精品亚洲人在线观看| 亚洲精品一区二区三区在线观看| 日本一区中文字幕| 欧美久久久一区| 日本系列欧美系列| 日韩一二在线观看| 久久国产三级精品| 精品免费国产二区三区 | 亚洲www啪成人一区二区麻豆| 91福利小视频| 亚洲国产成人av| 欧美日韩国产成人在线91| 一二三区精品福利视频| 欧美日韩精品三区| 亚洲高清视频的网址| 欧美日本一道本| 美腿丝袜亚洲色图| 久久综合九色综合97婷婷女人| 国产自产v一区二区三区c| 国产欧美精品一区二区色综合| 国产综合一区二区| 欧美极品aⅴ影院| www.成人在线| 亚洲国产精品视频| 在线一区二区三区| 蜜臀av一区二区三区| 精品国产乱码久久久久久免费 | 久久国产精品99精品国产 | 色老综合老女人久久久| 午夜日韩在线观看| 久久久精品天堂| 色综合激情久久| 美女在线观看视频一区二区| 久久久国产一区二区三区四区小说| 成人小视频在线| 一区二区激情小说| 精品国产亚洲在线| 日本韩国一区二区三区| 麻豆精品视频在线观看视频| 国产人妖乱国产精品人妖| 色天天综合色天天久久| 久久成人久久爱| 亚洲欧美色一区| 久久你懂得1024| 欧美视频完全免费看| 国产精品18久久久久久vr| 亚洲午夜精品一区二区三区他趣| 欧美r级在线观看| 色狠狠色狠狠综合| 国产一区视频在线看| 亚洲一线二线三线久久久| 欧美精品一区在线观看| 在线视频观看一区| 国产成人精品一区二区三区四区 | 欧美日韩不卡一区二区| 福利电影一区二区三区| 免费成人在线观看视频| 亚洲天堂精品在线观看| 久久色在线视频| 91精品中文字幕一区二区三区| 成人av在线影院| 国产一区二区三区国产| 男男gaygay亚洲| 亚洲伊人伊色伊影伊综合网| 中文一区在线播放| 日韩欧美色综合| 欧美午夜寂寞影院| 色综合久久综合中文综合网| 国产一区二区在线看| 日韩国产在线观看一区| 亚洲精品ww久久久久久p站| 中文字幕第一区第二区| 精品99一区二区| 欧美一区二区福利在线| 欧美另类变人与禽xxxxx| 色综合欧美在线视频区| 99久久久国产精品免费蜜臀| 国产成人av在线影院| 国产风韵犹存在线视精品| 国内精品在线播放| 久久99在线观看| 精品在线观看免费| 国内成人免费视频| 国内成+人亚洲+欧美+综合在线| 青青草原综合久久大伊人精品优势| 一区二区激情视频| 亚洲成人tv网| 五月激情综合色| 日韩精品久久理论片| 亚洲成va人在线观看| 偷拍一区二区三区四区| 日韩国产精品久久久久久亚洲| 日韩av高清在线观看| 蜜臀久久99精品久久久久宅男| 奇米影视一区二区三区| 久久99热国产| 国产成人啪免费观看软件| 成人a级免费电影| 91热门视频在线观看| 在线看日本不卡| 制服.丝袜.亚洲.另类.中文| 日韩一区二区在线观看| 久久亚洲精品国产精品紫薇| 欧美极品美女视频| 亚洲私人黄色宅男| a亚洲天堂av| 色久优优欧美色久优优| 欧美日韩精品一区视频| 欧美va亚洲va| 国产亚洲精品中文字幕| 亚洲人成亚洲人成在线观看图片| 樱花草国产18久久久久| 日韩激情在线观看| 国产精品18久久久久久久网站| 91在线精品一区二区三区| 天天免费综合色| 免费人成在线不卡| 在线观看不卡一区| 黑人巨大精品欧美一区| 99精品视频在线播放观看| 在线区一区二视频| 精品电影一区二区三区| 中文字幕乱码久久午夜不卡| 亚洲综合另类小说| 久久精品噜噜噜成人av农村| 成人av网站在线观看| 欧美日韩一二三| 欧美国产国产综合| 日韩精品一级中文字幕精品视频免费观看 | 美女网站色91| av电影在线不卡| 日韩午夜激情免费电影| 国产精品免费观看视频| 日韩国产精品久久久| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美另类videos死尸| 国产欧美日韩三区| 日韩精品国产精品| 99久久精品国产观看| 日韩欧美在线网站| 一区二区三区成人在线视频| 经典一区二区三区| 在线播放视频一区| 一区二区三区资源| 成人一区二区三区中文字幕| 欧美一区二区三区性视频| 亚洲黄色小视频| 成人黄色网址在线观看| 日韩欧美国产系列| 午夜一区二区三区在线观看| 成人精品一区二区三区中文字幕 | 国产麻豆精品一区二区| 欧美视频完全免费看| 亚洲人成网站精品片在线观看| 精品一区二区三区免费观看 | 在线观看亚洲一区| 中文字幕在线不卡视频| 国产乱色国产精品免费视频| 欧美一区三区二区| 午夜欧美2019年伦理| 欧美主播一区二区三区| 亚洲欧美另类久久久精品| 成人午夜又粗又硬又大| 久久久久久97三级| 激情小说欧美图片| 欧美r级在线观看| 毛片一区二区三区| 日韩一区二区不卡| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美视频在线不卡| 丝袜亚洲另类欧美综合| 欧美日韩你懂的| 日本欧美加勒比视频| 日韩一区二区麻豆国产| 91视频精品在这里| 亚洲黄色小视频| 欧美日韩国产影片|