⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hycddlg.cpp

📁 这是一个向数据库输入词库的一个小的软件
💻 CPP
字号:
// HYCDDlg.cpp : implementation file
//

#include "stdafx.h"
#include "HYCD.h"
#include "HYCDDlg.h"
#include "ADOConn.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()

/////////////////////////////////////////////////////////////////////////////
// CHYCDDlg dialog

CHYCDDlg::CHYCDDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CHYCDDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CHYCDDlg)
	m_EDITword = _T("");
	m_selectgram = _T("");
	m_selectwordkind = _T("");

	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CHYCDDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CHYCDDlg)
	DDX_Control(pDX, IDC_LIST20, m_List);
	DDX_Control(pDX, IDC_COMBO3, m_COMBOwordkind);
	DDX_Control(pDX, IDC_COMBO1, m_COMBOgram);
	DDX_Text(pDX, IDC_EDIT1, m_EDITword);
	DDX_CBString(pDX, IDC_COMBO1, m_selectgram);
	DDX_CBString(pDX, IDC_COMBO3, m_selectwordkind);
//	DDX_Check(pDX, IDC_CHECK1, m_noun);
//	DDX_Check(pDX, IDC_CHECK2, m_v);
//	DDX_Check(pDX, IDC_CHECK3, m_adj);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CHYCDDlg, CDialog)
	//{{AFX_MSG_MAP(CHYCDDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTTONbefore, OnBUTTONbeforeSubmission)
	ON_BN_CLICKED(IDOK, Onsubmission)
	ON_BN_CLICKED(IDC_BUTTONdelete, OnBUTTONdelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHYCDDlg message handlers

BOOL CHYCDDlg::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
//设置整行选中和网格线
	DWORD ExStyle =m_List.GetExtendedStyle();
	m_List.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
   //23个首字母列表
    m_COMBOgram.AddString("A");
	m_COMBOgram.AddString("B");
    m_COMBOgram.AddString("C");
	m_COMBOgram.AddString("D");
	m_COMBOgram.AddString("E");
	m_COMBOgram.AddString("F");
	m_COMBOgram.AddString("G");
	m_COMBOgram.AddString("H");
	m_COMBOgram.AddString("J");
	m_COMBOgram.AddString("K");
	m_COMBOgram.AddString("L");
	m_COMBOgram.AddString("M");
	m_COMBOgram.AddString("N");	
	m_COMBOgram.AddString("O");
	m_COMBOgram.AddString("P");
	m_COMBOgram.AddString("Q");
	m_COMBOgram.AddString("R");
    m_COMBOgram.AddString("S");
    m_COMBOgram.AddString("T");
	m_COMBOgram.AddString("W");
	m_COMBOgram.AddString("X");
	m_COMBOgram.AddString("Y");
	m_COMBOgram.AddString("Z");
	m_COMBOwordkind.AddString("常用词语");
    m_COMBOwordkind.AddString("计算机用语");
	m_COMBOwordkind.AddString("医学词语");
	m_COMBOwordkind.AddString("机械词语");
	m_COMBOwordkind.AddString("国家名称");
	m_COMBOwordkind.AddString("人名");
    m_COMBOwordkind.AddString("动物名字");
	m_COMBOwordkind.AddString("自然界景物");
	m_COMBOwordkind.AddString("食物");
	m_COMBOwordkind.AddString("建筑用语");
	m_COMBOwordkind.AddString("交通工具");
//	m_COMBOpartspeech.AddString("名词");
//	m_COMBOpartspeech.AddString("动词");
//	m_COMBOpartspeech.AddString("形容词");
//	m_COMBOpartspeech.AddString("量词");
//	m_COMBOpartspeech.AddString("数词");
//	m_COMBOpartspeech.AddString("副词");
//	m_COMBOpartspeech.AddString("助词");
//	m_COMBOpartspeech.AddString("叹词");
//	m_COMBOpartspeech.AddString("连词");
//	m_COMBOpartspeech.AddString("代词");
	m_List.InsertColumn(0,"NO.",0,30,0);
    m_List.InsertColumn(1,"首字母",0,50,0);
	m_List.InsertColumn(2,"词正文",0,120,0);
    m_List.InsertColumn(3,"词性",0,50,0);
	m_List.InsertColumn(4,"所属领域",0,80,0);
	int nIndex=0;
    m_List.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);

    //词性种类列表
   
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CHYCDDlg::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 CHYCDDlg::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 CHYCDDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}
int no=0;
void CHYCDDlg::OnBUTTONbeforeSubmission() 
{
	// TODO: Add your control notification handler code here

	UpdateData(TRUE);
	if (m_selectgram==""||m_EDITword==""||m_selectwordkind=="")
	{
		MessageBox("请检查,你没有填全!");
	}
	else
	{
      no=no+1;
	  CString stri,last_record;
	  stri.Format("%d",no);
	  CString strnoun,strv, stradj,stradv,strlian,strzhu,strdai,strshu,strliang;
	  if (IsDlgButtonChecked(IDC_CHECK1))
	  {
	    strnoun=",名词";
	  }
	  else strnoun="";
	 if (IsDlgButtonChecked(IDC_CHECK2))
	 {
	   strv=",动词";
	 }
	 else strv="";
	 if (IsDlgButtonChecked(IDC_CHECK3))
	 {
	  stradj=",形容词";
	 }
	 else  stradj="";
	  if (IsDlgButtonChecked(IDC_CHECK4))
	  {
	  stradv=",副词";
	  }
	  else stradv="";
 	 if (IsDlgButtonChecked(IDC_CHECK5))
	 {
	  strlian=",连词";
	 }
	 else strlian="";
	 if (IsDlgButtonChecked(IDC_CHECK6))
	{
	 strzhu=",助词";
	}
     else strzhu="";
	 if (IsDlgButtonChecked(IDC_CHECK7))
	{
	 strdai=",代词";
	}
	 else strdai="";
	 if (IsDlgButtonChecked(IDC_CHECK8))
	{
	 strshu=",数词";
	}
	 else strshu="";
	 if (IsDlgButtonChecked(IDC_CHECK9))
	{
	 strliang=",量词";
	}
	 else strliang="";
    CString m_speech;
	m_speech=strnoun+strv+stradj+stradv+strlian+strzhu+strdai+strshu+strliang;
    char ch;
	ch=m_speech.GetAt(0);
	if ((CString)ch==",")
	{
	 m_speech.Delete(0,1);
	}
	int i=0,j=0;
	last_record=m_List.GetItemText(i,0);
	while (last_record!="")
	{   i++;
	 	last_record=m_List.GetItemText(i,0);
	}
	if (i!=20)
	{
	   m_List.InsertItem(i,stri);
       m_List.SetItemText(i,1,m_selectgram);
	   m_List.SetItemText(i,2,m_EDITword);
       m_List.SetItemText(i,3,m_speech);
	   m_List.SetItemText(i,4,m_selectwordkind);
	}
    
   else

		MessageBox("已达到20个词,请仔细检查然后提交!");

	}
}

void CHYCDDlg::Onsubmission() 
{
	// TODO: Add your control notification handler code here

  int row=0,col=1;
  int word_length,weight1;
  char first_word1,first_word2;
  CString id,first_gram,full_word,word_speech,word_field,first_word;
  id=m_List.GetItemText(row,0);
  while (id!="")
  {
	first_gram=m_List.GetItemText(row,1);
    full_word=m_List.GetItemText(row,2);
	word_speech=m_List.GetItemText(row,3);
	word_field=m_List.GetItemText(row,4);
	full_word.TrimLeft();
	full_word.TrimRight();
    first_word1=full_word.GetAt(0);
	first_word=first_word1;
    first_word2=full_word.GetAt(1);
    first_word+=first_word2;
	word_length=full_word.GetLength()/2;
	CString str_len;
	str_len.Format("%d",word_length);
    weight1=1;
	row++;
	id=m_List.GetItemText(row,0);
	ADOConn m_ado;
    m_ado.OnInitADOConn();
    CString sqlstr;
    sqlstr.Format("insert into XTable(firstgram,firstword,fullword,wordlength,wordspeech,wordfield,weight)values('%s','%s','%s',%d,'%s','%s',%d)",first_gram,first_word,full_word,word_length,word_speech,word_field,weight1);
    m_ado.ExecuteSQL((_bstr_t)sqlstr);
	m_ado.ExitConnect();

//	,fullword,wordlength,wordspeech,wordfield,weight,
//'+%s+','+%d+','+%s+','+%s+','+%d+',,full_word,word_length,word_speech,word_field,weight1
  }	
  MessageBox("你已经成功将词语插入数据库!");
  m_List.DeleteAllItems();
  no=0;
  
}

void CHYCDDlg::OnBUTTONdelete() 
{
	// TODO: Add your control notification handler code here
  POSITION pos;
  pos=m_List.GetFirstSelectedItemPosition();
  int index_no;
  index_no=m_List.GetNextSelectedItem(pos);
  m_List.DeleteItem(index_no);	

}

void CHYCDDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	MessageBox("确定要关闭么?请您记住当前词在词典中的位置,下次从这里开始哦!");
	CDialog::OnCancel();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -