hur.cn - 华软网

 热门搜索

对话框问题

  作者:未知    来源:网络    更新时间:2011/5/24
最近在编一个对话框实现选择其中的几项之后输出答案的功能,但不知道遇到了什么问题,答案总是显示不了。希望各位帮忙解决一下。程序如下
  #include "stdafx.h"
#include "Motion Cell Calculator.h"
#include "Motion Cell CalculatorDlg.h"
#include   "resource.h "

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

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
//afx_msg void memberFxn( );
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()
};
//afx_msg void memberFxn( );
//  int  CComboBox::GetCurSel();
int AddString(LPCTSTR lpszString);
int InsertString(int nIndex,LPCTSTR lpszString);
void ResetContent();
int GetCount() ;
int GetCurSel();
int SetCurSel(int nSelect);
void GetLBText(int nIndex,CString &rString);
BOOL LimitText(int nMaxChars);
BOOL SetEditSel(int nStartChar,int nEndChar);
int SetCurSel(int nSelect);
int DeleteString(UINT nIndex);
//BOOL Create(LPCTSTR lpszClassName,LPCTSTR lpszWindowName,DWORD dwStyle=WS_OVERLAPPEDWINDOW,const RECT& rect=rectDefault,CWnd=NULL,LPCTSTR lpszMenuName =NULL,DWORD dwExstyle=0,CCreateContext*pContext*pContext=NULL);

//int InsertString(int nIndex,LPCTSTR lpszString);

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()

/////////////////////////////////////////////////////////////////////////////
// CMotionCellCalculatorDlg dialog

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

void CMotionCellCalculatorDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMotionCellCalculatorDlg)
DDX_Control(pDX, IDC_COMBO1, m_comXx);
DDX_Control(pDX, IDC_COMBO3, m_comXz);
DDX_Control(pDX, IDC_COMBO2, m_comXy);
DDX_Text(pDX, IDC_EDIT1, m_info);
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMotionCellCalculatorDlg, CDialog)
//{{AFX_MSG_MAP(CMotionCellCalculatorDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMotionCellCalculatorDlg message handlers

BOOL CMotionCellCalculatorDlg::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
/* m_comXx.AddString("La1");
m_comXx.AddString("Lr1");
m_comXx.AddString("Ea1");
m_comXx.AddString("Er1");
m_comXx.AddString("C");

m_comXy.AddString("La2");
m_comXy.AddString("Lr2");
m_comXy.AddString("Ea2");
m_comXy.AddString("Er2");
m_comXy.AddString("C");

m_comXz.AddString("a1*a2=0");
m_comXz.AddString("a1*a2!=0");
m_comXz.AddString("a1*a2!=0");
m_comXz.AddString("a1*a2=0");
m_comXz.AddString("r1*r2!=0");
m_comXz.AddString("r1*a2=0");
m_comXz.AddString("r1*a2!=0");

*/

// ((CComboBox*)GetDlgItem(IDC_COMBO1))->SetCurSel(0);


return TRUE;  // return TRUE  unless you set the focus to a control
}

void CMotionCellCalculatorDlg::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 CMotionCellCalculatorDlg::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 CMotionCellCalculatorDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}

//void CMotionCellCalculatorDlg::OnButton1() 
//{
// TODO: Add your control notification handler code here
void CMotionCellCalculatorDlg::OnButton1()
{
char 
     dy1[1000]="L1^a1(ÑØʸÁ¿a1·½ÏòµÄÏßÐÔÓòÒƶ¯µ¥ÔªL1)",
     dy12[1000]="L1^r1(ÑØʸÁ¿r1·½ÏòµÄÒ»×ÔÓɶÈÒƶ¯µ¥ÔªL1)", 
 dy13[1000]="E1^a1(ÑØʸÁ¿a1·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE1)",
 dy14[1000]="E1^r1(ÑØʸÁ¿R1·½ÏòµÄ¶þ×ÔÓɶÈÒƶ¯µ¥ÔªE1)",
 dy25[1000]="C(C±íʾÍêÕûÒƶ¯µ¥Ôª)", 
     dy2[1000]="L2^a2(ÑØʸÁ¿a2·½ÏòµÄÏßÐÔÓòÒƶ¯µ¥ÔªL2)",
 dy22[1000]="L2^r2(ÑØʸÁ¿r2·½ÏòµÄÒ»¸ö×ÔÓɶÈÒƶ¯µ¥ÔªL2)",
 dy23[1000]="E2^a2(ÑØʸÁ¿a2·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE2)",
 dy24[1000]="E2^r2(ÑØʸÁ¿R2·½ÏòµÄ¶þ×ÔÓɶÈÒƶ¯µ¥ÔªE2)",
 dy15[1000]="C(C±íʾÍêÕûÒƶ¯µ¥Ôª)",
     tj1[1000]="a1*a2=0",tj2[1000]="a1*a2!=0",
 tj3[1000]="a1*r2!=0",tj4[1000]="a1*a2=0",
 tj5[1000]="a1*a2!=0",tj6[1000]="a1*R2!=0",
 tj7[1000]="r1*r2!=0",tj8[1000]="ÎÞ",
 tj9[1000]="r1*a2=0",
 tj10[1000]="r1*a2!=0"; 
 
 
 
          
  int e=1;


   CString str1;                    
CString str2;
CString str3;
    
m_comXx.GetLBText(m_comXx.GetCurSel(),str1);
m_comXy.GetLBText(m_comXy.GetCurSel(),str2);
m_comXz.GetLBText(m_comXz.GetCurSel(),str3);
if ((strcmp(str1,dy1)==0)&&(strcmp(str2,dy2)==0)&&(strcmp(str3,tj1)==0))
m_info="L1^a1+L2^a2=L^ai(Lai±íʾÑØʸÁ¿ai·½ÏòµÄÏßÐÔÓòÒƶ¯µ¥ÔªL)";
 e=1;
if ((strcmp(str1,dy1)==0)&&(strcmp(str2,dy2)==0)&&(strcmp(str3,tj2)==0))
m_info="L1^a1+L2^a2=E^ai(Eai±íʾÑØʸÁ¿ai·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE),aiÂú×ã(a1*a2)*ai=0)";
 e=1;
if ((strcmp(str1,dy1)==0)&&(strcmp(str2,dy22)==0)&&(strcmp(str3,tj3)==0))
m_info="L1^a1+L2^r2=E^ai(Eai±íʾÑØʸÁ¿ai·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE,aiÂú×ã(a1*a2)*ai=0)";
 e=1;
 if ((strcmp(str1,dy1)==0)&&(strcmp(str2,dy23)==0)&&(strcmp(str3,tj4)==0))
m_info="L1^a1+E2^a2=E2^a2(E2a2±íʾÑØʸÁ¿a2·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE2)";
 e=1;
if ((strcmp(str1,dy1)==0)&&(strcmp(str2,dy23)==0)&&(strcmp(str3,tj5)==0))
m_info="L1a1+E2a2=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
e=1;
 if ((strcmp(str1,dy1)==0)&&(strcmp(str2,dy24)==0)&&(strcmp(str3,tj6)==0))
m_info="L1^a1+E2^r2=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
    if ((strcmp(str1,dy12)==0)&&(strcmp(str2,dy22)==0)&&(strcmp(str3,tj7)==0))
m_info="L1^r1+L2^r2=E^ai(Eai±íʾÑØʸÁ¿ai·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE,aiÊÇr1¡¢r2ÊÇËùÔÚµÄƽÃæµÄ·¨ÏßÏßʸÁ¿)";
 e=1;
    if ((strcmp(str1,dy1)==0)&&(strcmp(str2,dy25)==0)&&(strcmp(str3,tj8)==0))
m_info="L1a1+C=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
    if ((strcmp(str1,dy12)==0)&&(strcmp(str2,dy23)==0)&&(strcmp(str3,tj9)==0))
m_info="L1^r1+E2^a2=E2^a2(E2a2±íʾÑØʸÁ¿a2·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE2)";
e=1;
    if ((strcmp(str1,dy12)==0)&&(strcmp(str2,dy23)==0)&&(strcmp(str3,tj10)==0))
m_info="L1^r1+E2^a2=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
    if ((strcmp(str1,dy12)==0)&&(strcmp(str2,dy25)==0)&&(strcmp(str3,tj8)==0))
m_info="L1^r1+C=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;


    if ((strcmp(str1,dy13)==0)&&(strcmp(str2,dy23)==0)&&(strcmp(str3,tj1)==0))
m_info="E1^a1+E2^a2=E^ai(Eai±íʾÑØʸÁ¿ai·½ÏòµÄƽÃæÓòÒƶ¯µ¥ÔªE";
 e=1;
    if ((strcmp(str1,dy13)==0)&&(strcmp(str2,dy23)==0)&&(strcmp(str3,tj2)==0))
m_info="E1^a1+E2^a2=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
    if ((strcmp(str1,dy13)==0)&&(strcmp(str2,dy24)==0)&&(strcmp(str3,tj8)==0))
m_info="E1^a1+E2^r2=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
    if ((strcmp(str1,dy13)==0)&&(strcmp(str2,dy25)==0)&&(strcmp(str3,tj8)==0))
m_info="E1a1+C=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
    if ((strcmp(str1,dy14)==0)&&(strcmp(str2,dy24)==0)&&(strcmp(str3,tj8)==0))
m_info="E1^R1+E2^r2=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
    if ((strcmp(str1,dy14)==0)&&(strcmp(str2,dy25)==0)&&(strcmp(str3,tj8)==0))
m_info="E1R1+C=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
 e=1;
if ((strcmp(str1,dy15)==0)&&(strcmp(str2,dy25)==0)&&(strcmp(str3,tj8)==0))
m_info="C+C=C(C±íʾÍêÕûÔ˶¯µ¥Ôª)";
e=1;  
if (e!=1) 
    m_info="ÇëÑ¡ÔñÕýÈ·ÇÒÍêÕûµÄ×éºÏ";

// m_info= ""+str1+"";                              //   Ôڱ༭¿òÖÐÊä³ö±äÁ¿Ãû³Æ
// m_info= "ÄãÑ¡ÔñµÄÊÇ"+str1+""+str3+""+str2+"ѧԺ";
UpdateData(FALSE); 
// MessageBox("result");
}
---华软 网友回答---
.....长就算了,加点注释吧。楼主要注意编程习惯呀!
---华软网友回复---
好像有很多乱码
---华软网友回复---
Debug下调试吧,看看哪里数据不正确?
---华软网友回复---
没有看下去的勇气
---华软网友回复---
代码太长了,还是跟踪下来的容易
---华软网友回复---
额,,,,代码里有乱码,,这肿么看....你应该调试一下程序,看问题出在哪。。。是结果显示不了,还是结果根本就没有算出来,,还是代码本身就有问题。。。。。你应该先找到原因
---华软网友回复---
程序逻辑是什么样的?
选择什么?又输出什么答案?
还有代码里有乱码      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。