📄 switchdlg.cpp
字号:
// SwitchDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "Switch.h"
#include "SwitchDlg.h"
extern CString mof_Detail;
extern CString mof_Name;
extern int Ifmodif;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// 对话框数据
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// CSwitchDlg 对话框
CSwitchDlg::CSwitchDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSwitchDlg::IDD, pParent)
, m_Input(_T(""))
, m_Detailed(_T(""))
{
Add_New=new CAddNew(this);
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CSwitchDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LISTACCESS, m_AccessList);
DDX_Text(pDX, IDC_INPUT, m_Input);
DDX_Text(pDX, IDC_DETAIL, m_Detailed);
DDX_Control(pDX, IDC_SEARCH, m_SearchBt);
DDX_Control(pDX, IDC_SETTING, m_Setting);
DDX_Control(pDX, IDC_SAVEALL, m_SaveAll);
DDX_Control(pDX, IDC_EX1, m_Ex1);
DDX_Control(pDX, IDC_EX2, m_Ex2);
}
BEGIN_MESSAGE_MAP(CSwitchDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_SEARCH, &CSwitchDlg::OnBnClickedSearch)
ON_EN_CHANGE(IDC_INPUT, &CSwitchDlg::OnEnChangeInput)
ON_LBN_SELCHANGE(IDC_LISTACCESS, &CSwitchDlg::OnLbnSelchangeListaccess)
ON_LBN_DBLCLK(IDC_LISTACCESS, &CSwitchDlg::OnLbnDblclkListaccess)
// ON_WM_RBUTTONUP(IDC_LISTACCESS, &CSwitchDlg::OnListRButtonUp)
ON_MESSAGE(WM_ADDNEW,OnAddNewItem)
ON_WM_ENABLE()
ON_BN_CLICKED(IDC_SAVEALL, &CSwitchDlg::OnBnClickedSaveall)
ON_WM_DESTROY()
ON_WM_RBUTTONUP()
ON_COMMAND(ID_ADDNEW, &CSwitchDlg::OnAddnew)
END_MESSAGE_MAP()
// CSwitchDlg 消息处理程序
BOOL CSwitchDlg::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); // 设置小图标
// ModifyStyle( WS_CAPTION, WS_MINIMIZEBOX, SWP_DRAWFRAME );//设置图标
m_bmpBackground.LoadBitmap(IDB_MAINTITLE); /// 加载背景
m_bmpAdd.LoadBitmap(IDB_ADDBMP); /// 加载背景
m_bmpState.LoadBitmap(IDB_STATE);
m_bmpLeftTitle.LoadBitmap(IDB_LEFTTITLE);
m_bmpRightTitle.LoadBitmap(IDB_RIGHTTITLE);
m_bmpRightBar.LoadBitmap(IDB_RIGHTBAR);
m_Sta_Input.SubclassDlgItem(IDC_STA_INPUT,this);
m_Sta_Input.SetCaption(_T("输入:"));
m_Sta_Input.SetBackColor(RGB(222,223,222));
m_Sta_Memu.SubclassDlgItem(IDC_STA_MEMU,this);
m_Sta_Memu.SetCaption(_T("元器件清单"));
m_Sta_Memu.SetBackColor(RGB(222,223,222));
m_SearchBt.LoadBitmaps(IDB_SEARCHBT,IDB_SEARCHBT2);
m_Setting.SetBitmaps(IDB_SETTING, RGB(0, 255, 0));
m_Setting.DrawTransparent(TRUE);
m_Setting.SetTooltipText(_T("更改设置"));
m_Setting.SetMenu(IDR_RMOUSEMEMU, m_hWnd);
m_SaveAll.SetBitmaps(IDB_SAVEALL, RGB(0, 255, 0));
m_SaveAll.DrawTransparent(TRUE);
m_SaveAll.SetTooltipText(_T("更改设置"));
m_Ex1.SetBitmaps(IDB_EX1, RGB(0, 255, 0));
m_Ex1.DrawTransparent(TRUE);
m_Ex1.SetTooltipText(_T("更改设置"));
m_Ex2.SetBitmaps(IDB_EX2, RGB(0, 255, 0));
m_Ex2.DrawTransparent(TRUE);
m_Ex2.SetTooltipText(_T("更改设置"));
// m_Setting.SetIcon(IDB_SEARCHBT);
// 使用ADO创建数据库记录集
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。shiweilei
try
{
m_pRecordset->Open("SELECT * FROM component", // 查询test表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
OnReadAccess();
// m_pRecordset->MoveFirst(); //移到首条记录
// while(!m_pRecordset->adoEOF)
// {
// m_pRecordset->Delete(adAffectCurrent); //删除当前记录
// m_pRecordset->MoveNext(); //移到下一条记录
// }
map <CString, CString> :: iterator Sea_Iter=Sea.begin();
m_Detailed=Sea_Iter->second;
UpdateData(FALSE);
for(;Sea_Iter!=Sea.end();Sea_Iter++){
m_AccessList.AddString(Sea_Iter->first);
// OnWriteAccess(Sea_Iter->first,Sea_Iter->second,_T("0"));
}
m_AccessList.SetCurSel(0);
m_AccessList.SetTopIndex(0);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CSwitchDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CSwitchDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作矩形中居中
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;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
BITMAP bitMap;
m_bmpBackground.GetBitmap(&bitMap);
CBitmap *pbmpOld=dcMem.SelectObject(&m_bmpBackground);
dc.StretchBlt(0,0,rect.Width(),40,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
dc.StretchBlt(rect.Width()-400,0,400,40,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
// dc.TextOutW(330,10,_T("查 询"));
m_bmpLeftTitle.GetBitmap(&bitMap);
pbmpOld=dcMem.SelectObject(&m_bmpLeftTitle);
dc.StretchBlt(0,40,210,24,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
m_bmpRightBar.GetBitmap(&bitMap);
pbmpOld=dcMem.SelectObject(&m_bmpRightBar);
dc.StretchBlt(210,40,8,420,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
m_bmpState.GetBitmap(&bitMap);
pbmpOld=dcMem.SelectObject(&m_bmpState);
dc.StretchBlt(0,rect.Height()-26,700,26,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
dc.StretchBlt(rect.Width()-100,rect.Height()-26,100,26,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
m_bmpRightTitle.GetBitmap(&bitMap);
pbmpOld=dcMem.SelectObject(&m_bmpRightTitle);
// dc.StretchBlt(210,40,rect.Width(),25,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
dc.StretchBlt(215,40,100,25,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
dc.StretchBlt(rect.Width()-99,40,100,25,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
m_bmpLeftTitle.GetBitmap(&bitMap);
pbmpOld=dcMem.SelectObject(&m_bmpLeftTitle);
dc.StretchBlt(225,40,411,24,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
m_bmpRightBar.GetBitmap(&bitMap);
pbmpOld=dcMem.SelectObject(&m_bmpRightBar);
dc.StretchBlt(rect.Width()-3,40,3,450,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
dc.StretchBlt(0,63,4,450,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
m_bmpState.GetBitmap(&bitMap);
pbmpOld=dcMem.SelectObject(&m_bmpState);
dc.StretchBlt(0,rect.Height()-26,700,26,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
dc.StretchBlt(rect.Width()-100,rect.Height()-26,100,26,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
// m_bmpLeftTitle.GetBitmap(&bitMap);
// pbmpOld=dcMem.SelectObject(&m_bmpLeftTitle);
// dc.StretchBlt(250,40,100,24,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
// dc.StretchBlt(350,40,100,24,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
// dc.StretchBlt(450,40,100,24,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标显示。
//
HCURSOR CSwitchDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CSwitchDlg::OnBnClickedSearch()
{
// TODO: 在此添加控件通知处理程序代码
// m_AccessList.SetTopIndex(5) ;
}
//////////////////////////////////////////////////////////////////////////////
//名称:OnWriteAccess
//功能:用ADO来写入插入的字段值
//作者:施炜雷(shiweilei@sina.com)
//组织:刀锋工作室()
//日期:2006.8.20
/////////////////////////////////////////////////////////////////////////////
void CSwitchDlg::OnWriteAccess(CString str_Name,CString str_Detail,CString str_Other)
{
UpdateData();
// CString s_time=m_StyleExampleA.FormattedTime();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -