• 计算机图形学

    void CMyView::OnInitialUpdate() { CView::OnInitialUpdate(); BITMAP bm; // Windows BITMAP data structure; see Win32 help m_pBitmap[0].LoadBitmap(IDB_BITMAP1); m_pBitmap[1].LoadBitmap(IDB_BITMAP2); m_pBitmap[2].LoadBitmap(IDB_BITMAP3); m_pBitmap[3].LoadBitmap(IDB_BITMAP4); m_pBitmap[4].LoadBitmap(IDB_BITMAP5); for(int i=0;i<5;i++) { CClientDC dc(this); OnPrepareDC(&dc;); m_pdcMemory[i].CreateCompatibleDC(&dc;); m_pdcMemory[i].SelectObject(&m_pBitmap[i]); m_pBitmap[i].GetObject(sizeof(bm), &bm;); m_sizeSource.cx = bm.bmWidth; m_sizeSource.cy = bm.bmHeight; m_sizeDest = m_sizeSource; dc.DPtoLP(&m_sizeDest); } int nTimer=SetTimer(1,700,NULL); ASSERT(nTimer!=0); }

    0
    92
    13.51MB
    2012-01-15
    0
  • 通讯录 vc 数据库

    void CMainDlg::OnAdd() { // TODO: Add your control notification handler code here //本对话框对应的数据库连接关闭 m_database.Close(); //新建一个CAddInfoDlg的对象 CAddInfoDlg dlg; //新对话框建立到数据库连接 dlg.m_database.Open(_T("addresslist")); //弹出新对话框 dlg.DoModal(); //新对话框关闭后,在原对话框中刷新数据显示 RefreshData(); } void CMainDlg::OnEdit() { // TODO: Add your control notification handler code here m_database.Close();//本对话框断开与数据库的连接 CModifyDlg dlg; dlg.m_database.Open(_T("addresslist"));//打开数据库 int i=m_ctrlperson.GetSelectionMark(); CString strSQL; int id=atoi(m_ctrlperson.GetItemText(i,0)); CPersonSet m_recordset; CDBVariant varValue; if(i==-1) { MessageBox("请选择一条要修改的记录!","提示",MB_OK|MB_ICONINFORMATION); } else { int temp=0; strSQL.Format("select * from person where ID=%d",id); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); m_recordset.GetFieldValue(temp,varValue); dlg.m_modid=varValue.m_lVal; m_recordset.GetFieldValue(1,varValue); dlg.m_modname=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(2,varValue); dlg.m_modsex=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(3,varValue); dlg.m_modrelation=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(4,varValue); dlg.m_modtelephone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(5,varValue); dlg.m_modhandphone=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(6,varValue); dlg.m_modaddress=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(7,varValue); dlg.m_modworkplace=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(8,varValue); dlg.m_modemail=varValue.m_pstring->GetBuffer(1); m_recordset.GetFieldValue(9,varValue); dlg.m_modoicq=varValue.m_pstring->GetBuffer(1); //m_database.Close();//此处不能断开与数据库的连接 dlg.DoModal(); RefreshData(); } }

    5
    87
    89KB
    2012-01-15
    13
  • 数据结构实践

    源程序目录 序号 章 节 源程序文件夹名 1 绪 MinNum 2 线性表 顺序表 SqList 链表 单链表 LinkList 循环链表 ClinkList 双循环链表 DLinkList 静态链表 SlinkList 应用 集合并 MerGroup 多项式求和 Poly 3 栈 顺序栈 SqStack 链栈 LinkStack 栈应用 数制转换 Conversion 表达式计算 Expresion 4 队列 循环队列 CirQueue 链队 LinkQueue 5 串 串类 AString 串匹配 FindStr 6 数组 快速转置 MatrixTrans 矩阵加 AddMatrix 矩阵乘 MulMatrix 7 广义表 头、尾表示的广义表 BroadList 8 树与二叉树 二叉链表存储的二叉树 BiTree 孩子-兄弟存储的树 CTree 二叉树线索化 先序 PreThreading 中序 InThreading 后序 PostThreading 最优二叉树 HuffmanTree 9 图 图类的实现 数组表示 ArrayGraph 邻接表表示 AdjLgraph 十字链表表示 OrLgraph 邻接多重表表示 AdjMgraph 图的联通性 无向图的生成树 DFSForest 有向图的强连通分量 DgComponent 最小生成树 Minitree 关节点 FindArtgraph 图的应用 拓扑排序 TSort 关键路径 CritPath Dijkstra算法 DIJ Floyd算法 FLOYD 10 查找 静态查找 顺序查找、折半查找 SSearch 动态查找 二叉排序树 BSTSearch 散列查找 开放定址 LineHSearch 11 排序 插入排序 直接插入排序 Sort 折半插入排序 表插入排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 其它 归并排序 基排序

    0
    187
    6.18MB
    2012-01-15
    9
  • IC操作 读写器

    UINT mainThread(LPVOID ThreadParam) { int ret; uchar szbuff[100]; for(int i=0;i<10;i++) { //memset(szbuff,0,100); ::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_GET,0,0);//取数据 for(int k=0;k<2;k++) { ret=mifs_request_2(0x26,szbuff); //寻卡 if(ret==0)break; } if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,14,0);continue;} ret=mifs_load_keyE2(0x60,g_SectorNO,g_KeyA);//装载密钥A if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,1,0);continue;} ret=mifs_anticoll(0x00, g_CardSerialNo);//防冲突,返回卡序号 if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,3,0);continue;} ret=mifs_select(g_CardSerialNo, szbuff);//根据卡序号选择卡片 if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,4,0);continue;} ret=mifs_authenticationE2(0x60,g_CardSerialNo, g_SectorNO);//密钥A验证 if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,5,0);continue;} ret=mifs_read(g_BlockNO,g_BlockData);//读取块数据 if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,6,0);continue;} /* ret=mifs_authenticationE2(0x61,g_CardSerialNo, g_SectorNO);//密钥B验证 if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,7,0);continue;} */ // ret=mifs_initValue(g_BlockNO, g_InitValue);//初始化余额 // if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,8,0);continue;} // ::Sleep(100); ret=mifs_addValue(g_BlockNO, g_AddValue);//增余额 // ret=mifs_value(0xc1,g_BlockNO,g_AddValue); if(ret>0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,10,0);continue;} else if(ret<0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,15,0);break;} ret=mifs_decreaseValue(g_BlockNO, g_DecValue);//减余额 // ret=mifs_value(0xc0,g_BlockNO,g_DecValue); if(ret>0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,11,0);continue;} else if(ret<0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,13,0);break;} ret=mifs_readValue(g_BlockNO, &g_ReadValue);//读余额 if(ret!=0){::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,9,0);continue;} // Buzzer(2);//蜂鸣(加了蜂鸣之后读卡器会滞后) ::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_PUT,0,0);//显示结果 //::Sleep(1000); } ::SendMessage((HWND)ThreadParam,WM_MY_MESSAGE_INFO,12,0); g_ReadFlag=0; return 0; }

    0
    73
    3.06MB
    2012-01-15
    9
  • 串口 大文件 发送

    #ifndef __WD_PROTOCOL_H__ #define __WD_PROTOCOL_H__ #define SERIALPORT_BUFF_LEN (1024*100) //串口缓存 //区长1M Byte //释放内存时,专用的宏 #define DELETE_OBJ(X) if(x){deletex;x=NULL;} #define DELETE_ARRAYOBJS(x) if(x){delete[]x;x=NULL;} #define CMD_SYN_WORD 0xBBAAFE6B //同步字 #define FILEDATA_LEN 1024*2 //文件数据块长度 typedef enum tagCMDTYPE { CMD_UNKNOWN =0, CMD_FILEINFO =1, CMD_FILEDATA =2, CMD_FILEEOF =3, CMD_FILEINFO_RESP =4,//响应命令 CMD_FILEDATA_RESP =5,//响应命令 CMD_FILEEOF_RESP =6 //响应命令 }CMDTYPE; typedef enum tagCMDSTATE { STATE_UNKNOWN =0, //未知状态 CMD_STATE_OK =1, CMD_STATE_ERROR =2 }CMDSTATE; //帧头-命令消息头 typedef struct tagCMDHEADER { ULONG ulSyncWord; //同步头 CMDTYPE cmdType; CMDSTATE cmdState; ULONG ulPackLen; //包长度,包括数据+校验和 }CMDHEADER; //文件信息结构体,主要发送文件名称和文件大小信息 typedef struct tagFILEINFO { CMDHEADER header; //帧头 UCHAR ucFileName[MAX_PATH]; //文件名称 ULONG ulFileNameLen; //文件名称长度 long lFileLen; //文件长度(单位:字节) ULONG ulCheckSum; //校验和 }FILEINFO; //要发送的文件数据结构体:主要是以固定大小发送文件中的数据 typedef struct tagFILEDATA { CMDHEADER header; //帧头 ULONG ulCheckSum; //校验和 UCHAR *pucBuf; //指向发送缓冲区 }FILEDATA; //文件发送结束命令 typedef struct tagFILEEOF { CMDHEADER header; ULONG ulCheckSum; UCHAR *pucBuf; }FILEEOF; typedef struct tagADDATA { UCHAR ucSyncHeader1; //同步头,0xAABB UCHAR ucSyncHeader2; //同步头,0xAABB float fChan0; //通道0 float fChan1; //通道1 float fChan2; //通道2 float fChan3; //通道3 float fChan4; //通道4 float fChan5; //通道5 float fChan6; //通道6 float fChan7; //通道7 float fChan8; //通道8 float fChan9; //通道9 float fChan10; //通道10 float fChan11; //通道11 UCHAR ucCheckSum; //校验和,前面所有数据的累加和,并取低8位 }ADDATA; ULONG CheckSum(UCHAR *pszBuf,ULONG ulBufLen) { ULONG ulCheckSum =0; for (UINT i=0;i<ulBufLen;i++) { ulCheckSum+=pszBuf[i]; } return ulCheckSum; } #endif //__WD_PROTOCOL_H__

    3
    143
    7.55MB
    2012-01-15
    11
  • 串口调试助手

    void CSerialAsDlg::OnStartsendfile&#40;&#41; { // TODO: Add your control notification handler code here static CWinThread* thread; if(!m_bSendFlag) { m_bSendFlag = TRUE; m_SendError = FALSE; m_bCancelSend = FALSE; GetDlgItem(IDC_BTNCLOSEPORT)->EnableWindow(FALSE); GetDlgItem(IDC_STARTSENDFILE)->EnableWindow(FALSE); GetDlgItem(IDC_STARTSENDFILE)->SetWindowText(_T("取消发送")); ResetEvent(m_hEventSendFile); thread = AfxBeginThread(SendFileThreadProc,this,THREAD_PRIORITY_NORMAL,0,0,NULL); } else { m_bSendFlag = FALSE; m_bCancelSend = TRUE; DWORD st = WaitForSingleObject(m_hEventSendFile,2000); if(st==WAIT_TIMEOUT) { TerminateThread(thread,0); } GetDlgItem(IDC_BTNCLOSEPORT)->EnableWindow(TRUE); GetDlgItem(IDC_STARTSENDFILE)->SetWindowText(_T("发送文件")); } }

    0
    78
    277KB
    2012-01-15
    3
  • 多文档 选项卡

    void CTabMDIDemoView::OnInitialUpdate() { CView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class CTabMDIDemoDoc * pDoc = GetDocument(); ASSERT_VALID(pDoc); CString cs=pDoc->GetTitle(); ((CMainFrame*)AfxGetMainWnd())->m_ViewManager.AddView(cs,this); } void CTabMDIDemoView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { // TODO: Add your specialized code here and/or call the base class ((CMainFrame*)AfxGetMainWnd())->m_ViewManager.OnActivateView(bActivate, this); ((CMainFrame*)AfxGetMainWnd())->SendMessage(WM_SIZE); CView::OnActivateView(bActivate, pActivateView, pDeactiveView); }

    4
    111
    35KB
    2012-01-15
    10
  • 电子元器件绘制系统

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; //this->Create(NULL,"元器件绘制系统",WS_MAXIMIZE); if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } if (!m_wndToolBarDraw.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBarDraw.LoadToolBar(IDR_DRAW_ICCHIP)) { TRACE0("Failed to create toolbar\n"); return -1; // fail to create } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } // TODO: Delete these three lines if you don't want the toolbar to // be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); m_wndToolBarDraw.EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBarDraw); this->FloatControlBar(&m_wndToolBarDraw,CPoint(30,120)); //m_wndToolBarDraw.SetSizes(CSize(25+7,25+6),CSize(25,25)); // CG: The following line was added by the Splash Screen component. // CSplashWnd::ShowSplashScreen(this); // CG: The following line was added by the Splash Screen component. CSplashWnd::ShowSplashScreen(this); return 0; }

    3
    97
    3.43MB
    2012-01-15
    17
  • INI文件类 ini.cpp ini.h

    bool CIni::Open(char *filename) { strcpy(m_strFileName, filename); SAFE_FREE( m_strData ); int fh; fh = _open( filename, _O_RDONLY ); // 只读方式 if( fh== -1 ) m_lDataLen = -1; m_lDataLen = _filelength(fh); // 获取文件长度 _close(fh); if( m_lDataLen > 0 )// 文件存在 { m_strData = new char[m_lDataLen];// 申请空间 FILE *fp; fp=fopen&#40;filename, "rb"&#41;; fread(m_strData, m_lDataLen, 1, fp);// 读数据 fclose(fp); InitIndex(); // 初始化索引 return true; } else // 文件不存在 { m_lDataLen=1; m_strData = new char[m_lDataLen]; memset(m_strData, 0, 1); InitIndex(); } return false; }

    4
    132
    4KB
    2012-01-15
    9
  • VC++中读取INI文件

    bool CIni::Write(char *index, char *name, int num) { char string[32]; sprintf(string, "%d", num); int n=FindIndex(index); if( n == -1 ) //新建索引 { AddIndex(index); n=FindIndex(index); n=GotoLastLine(index); AddData(n, name, string); //在当前位置n加一个数据 return true; } //存在索引 int m=FindData(n, name); if( m==-1 ) //新建数据 { n=GotoLastLine(index); AddData(n, name, string); //在当前位置n加一个数据 return true; } //存在数据 ModityData(n, name, string); //修改一个数据 return true; }

    5
    120
    44KB
    2012-01-15
    12
  • 分享王者

    成功上传51个资源即可获取
  • 阅读者勋章

    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
关注 私信
上传资源赚积分or赚钱