vc问题,高手进。

来源:百度知道 编辑:UC知道 时间:2024/05/24 19:45:03
我编了一个对话框程序,其中想用组合框代替代码m_ctrlComm.SetSettings("9600,n,8,1");中的数据。 但是我给组合框加了变量后运行程序就没有任何反应了,程序也不报错。就是点击运行后没有任何反应,连对话框都不弹出来。具体SCommTestDlg.cpp文件如下:

#include "stdafx.h"
#include "SCommTest.h"
#include "SCommTestDlg.h"
#include "mscomm.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();
.........
...........

BOOL CSCommTestDlg::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)

hi我一下

m_ctrlComm.SetSettings("m_combo1.SetCurSel(1),n,m_combo5.SetCurSel(0),m_combo6.SetCurSel(0)");
你这里用引号括起来,就是简单的字符串了,而不是你想要的组合框里的值

这个可能不是combox的问题,从你的程序看,你使用了vc的通信控件搞的串口程序,就时那个控件比较恶心,我之前也遇到这样的问题,你把工程目录下的:.ncb,.opt,.aps,.clw及debug文件夹等等能删除的。重新启动dsw文件,应该会ok;是在不行,把这个控件也删掉,重新加(之前还是把:.ncb,.opt,.aps,.clw及debug文件夹等等能删除的),你试一下,我就时这么搞好的~~

接上面代码:
void CSCommTestDlg::OnOnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString strtemp;

if(m_ctrlComm.GetCommEvent()==2)
{
variant_inp=m_ctrlComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
m_strEditR