初学VC,请问用NEW申请的空间如何释放,什么时间,如何释放?
发布: 2010-1-14 10:28 | 作者: billtian | 来源: StmFans思蜕盟 OPELC 自由电子联盟
// CMFCCommAssistDlg 消息处理程序
BOOL CMFCCommAssistDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 将\“关于...\”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
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);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
//////////////////////////////////////////////////////////////////////////
//
// SERIAL
//
int n;
CString* str;
// PORTS
n_portnum = 0;
for (n=0;n<PORTNAME_MAX;n++)
{
str = new CString;
str->Format("COM%d",n+1);
if (CSerialMFC::CheckPort((LPCTSTR)(*str))
==CSerialMFC::EPortAvailable)
{
//m_lstStrPort[n] = str;
m_lstStrPort[n_portnum] = str;
n_portnum ++;
}
}
// BAUDRATE
//m_lstBaudrate[0] = CSerialMFC::EBaud9600;
//m_lstBaudrate[1] = CSerialMFC::EBaud19200;
//m_lstBaudrate[2] = CSerialMFC::EBaud38400;
m_lstBaudrate[0] = CSerialMFC::EBaud9600; // 9600 bits/sec
m_lstBaudrate[1] = CSerialMFC::EBaud19200; // 19200 bits/sec (default)
m_lstBaudrate[2] = CSerialMFC::EBaud38400; // 38400 bits/sec
m_lstBaudrate[3] = CSerialMFC::EBaud57600; // 57600 bits/sec
m_lstBaudrate[4] = CSerialMFC::EBaud115200; // 115200 bits/sec
m_lstBaudrate[5] = CSerialMFC::EBaud4800; // 4800 bits/sec
m_lstBaudrate[6] = CSerialMFC::EBaud2400; // 2400 bits/sec
m_lstBaudrate[7] = CSerialMFC::EBaud1200; // 1200 bits/sec
/*
m_lstBaudrate[8] = CSerialMFC::EBaud19200; // 19200 bits/sec (default)
m_lstBaudrate[9] = CSerialMFC::EBaud38400; // 38400 bits/sec
m_lstBaudrate[10] = CSerialMFC::EBaud56000; // 56000 bits/sec
m_lstBaudrate[11] = CSerialMFC::EBaud57600; // 57600 bits/sec
m_lstBaudrate[12] = CSerialMFC::EBaud115200; // 115200 bits/sec
m_lstBaudrate[13] = CSerialMFC::EBaud128000; // 128000 bits/sec
m_lstBaudrate[14] = CSerialMFC::EBaud256000; // 256000 bits/sec
*/
m_lstStrBaudrate[0] = new CString("9600");
m_lstStrBaudrate[1] = new CString("19200");
m_lstStrBaudrate[2] = new CString("38400");
m_lstStrBaudrate[3] = new CString("57600");
m_lstStrBaudrate[4] = new CString("115200");
m_lstStrBaudrate[5] = new CString("4800");
m_lstStrBaudrate[6] = new CString("2400");
m_lstStrBaudrate[7] = new CString("1200");
m_lstDataBits[0] = CSerialMFC::EData8;
m_lstDataBits[1] = CSerialMFC::EData6;
m_lstDataBits[2] = CSerialMFC::EData7;
m_lstDataBits[3] = CSerialMFC::EData5;
m_lstStrDataBits[0] = new CString("8");
m_lstStrDataBits[1] = new CString("7");
m_lstStrDataBits[2] = new CString("6");
m_lstStrDataBits[3] = new CString("5");
m_lstParity[0] = CSerialMFC::EParNone;
m_lstParity[1] = CSerialMFC::EParOdd;
m_lstParity[2] = CSerialMFC::EParEven;
m_lstParity[3] = CSerialMFC::EParMark;
m_lstParity[4] = CSerialMFC::EParSpace;
m_lstStrParity[0] = new CString("None");
m_lstStrParity[1] = new CString("Odd");
m_lstStrParity[2] = new CString("Even");
m_lstStrParity[3] = new CString("Mark");
m_lstStrParity[4] = new CString("Space");
m_lstStopBits[0] = CSerialMFC::EStop1;
m_lstStopBits[1] = CSerialMFC::EStop1_5;
m_lstStopBits[2] = CSerialMFC::EStop2;
m_lstStrStopBits[0] = new CString("1");
m_lstStrStopBits[1] = new CString("1.5");
m_lstStrStopBits[2] = new CString("2");
CComboBox* p_ComboBox;
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_PORTNAME);
for (n=0;n<n_portnum;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrPort[n]));
if(n_portnum>0) p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_BAUDRATE);
for (n=0;n<BAUDRATE_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrBaudrate[n]));
p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_DATABITS);
for (n=0;n<DATABITS_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrDataBits[n]));
p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_PARITY);
for (n=0;n<PARITY_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrParity[n]));
p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_STOPBITS);
for (n=0;n<STOPBITS_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrStopBits[n]));
p_ComboBox->SetCurSel(0);
m_port_opened = false;
UpdateButtonOC();
return TRUE; // 除非设置了控件的焦点,否则返回 TRUE
}
BOOL CMFCCommAssistDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 将\“关于...\”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
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);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
//////////////////////////////////////////////////////////////////////////
//
// SERIAL
//
int n;
CString* str;
// PORTS
n_portnum = 0;
for (n=0;n<PORTNAME_MAX;n++)
{
str = new CString;
str->Format("COM%d",n+1);
if (CSerialMFC::CheckPort((LPCTSTR)(*str))
==CSerialMFC::EPortAvailable)
{
//m_lstStrPort[n] = str;
m_lstStrPort[n_portnum] = str;
n_portnum ++;
}
}
// BAUDRATE
//m_lstBaudrate[0] = CSerialMFC::EBaud9600;
//m_lstBaudrate[1] = CSerialMFC::EBaud19200;
//m_lstBaudrate[2] = CSerialMFC::EBaud38400;
m_lstBaudrate[0] = CSerialMFC::EBaud9600; // 9600 bits/sec
m_lstBaudrate[1] = CSerialMFC::EBaud19200; // 19200 bits/sec (default)
m_lstBaudrate[2] = CSerialMFC::EBaud38400; // 38400 bits/sec
m_lstBaudrate[3] = CSerialMFC::EBaud57600; // 57600 bits/sec
m_lstBaudrate[4] = CSerialMFC::EBaud115200; // 115200 bits/sec
m_lstBaudrate[5] = CSerialMFC::EBaud4800; // 4800 bits/sec
m_lstBaudrate[6] = CSerialMFC::EBaud2400; // 2400 bits/sec
m_lstBaudrate[7] = CSerialMFC::EBaud1200; // 1200 bits/sec
/*
m_lstBaudrate[8] = CSerialMFC::EBaud19200; // 19200 bits/sec (default)
m_lstBaudrate[9] = CSerialMFC::EBaud38400; // 38400 bits/sec
m_lstBaudrate[10] = CSerialMFC::EBaud56000; // 56000 bits/sec
m_lstBaudrate[11] = CSerialMFC::EBaud57600; // 57600 bits/sec
m_lstBaudrate[12] = CSerialMFC::EBaud115200; // 115200 bits/sec
m_lstBaudrate[13] = CSerialMFC::EBaud128000; // 128000 bits/sec
m_lstBaudrate[14] = CSerialMFC::EBaud256000; // 256000 bits/sec
*/
m_lstStrBaudrate[0] = new CString("9600");
m_lstStrBaudrate[1] = new CString("19200");
m_lstStrBaudrate[2] = new CString("38400");
m_lstStrBaudrate[3] = new CString("57600");
m_lstStrBaudrate[4] = new CString("115200");
m_lstStrBaudrate[5] = new CString("4800");
m_lstStrBaudrate[6] = new CString("2400");
m_lstStrBaudrate[7] = new CString("1200");
m_lstDataBits[0] = CSerialMFC::EData8;
m_lstDataBits[1] = CSerialMFC::EData6;
m_lstDataBits[2] = CSerialMFC::EData7;
m_lstDataBits[3] = CSerialMFC::EData5;
m_lstStrDataBits[0] = new CString("8");
m_lstStrDataBits[1] = new CString("7");
m_lstStrDataBits[2] = new CString("6");
m_lstStrDataBits[3] = new CString("5");
m_lstParity[0] = CSerialMFC::EParNone;
m_lstParity[1] = CSerialMFC::EParOdd;
m_lstParity[2] = CSerialMFC::EParEven;
m_lstParity[3] = CSerialMFC::EParMark;
m_lstParity[4] = CSerialMFC::EParSpace;
m_lstStrParity[0] = new CString("None");
m_lstStrParity[1] = new CString("Odd");
m_lstStrParity[2] = new CString("Even");
m_lstStrParity[3] = new CString("Mark");
m_lstStrParity[4] = new CString("Space");
m_lstStopBits[0] = CSerialMFC::EStop1;
m_lstStopBits[1] = CSerialMFC::EStop1_5;
m_lstStopBits[2] = CSerialMFC::EStop2;
m_lstStrStopBits[0] = new CString("1");
m_lstStrStopBits[1] = new CString("1.5");
m_lstStrStopBits[2] = new CString("2");
CComboBox* p_ComboBox;
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_PORTNAME);
for (n=0;n<n_portnum;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrPort[n]));
if(n_portnum>0) p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_BAUDRATE);
for (n=0;n<BAUDRATE_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrBaudrate[n]));
p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_DATABITS);
for (n=0;n<DATABITS_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrDataBits[n]));
p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_PARITY);
for (n=0;n<PARITY_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrParity[n]));
p_ComboBox->SetCurSel(0);
p_ComboBox =
(CComboBox*)GetDlgItem(IDC_CBB_STOPBITS);
for (n=0;n<STOPBITS_MAX;n++)
p_ComboBox->AddString((LPCTSTR)(*m_lstStrStopBits[n]));
p_ComboBox->SetCurSel(0);
m_port_opened = false;
UpdateButtonOC();
return TRUE; // 除非设置了控件的焦点,否则返回 TRUE
}

