VC/MFC
文章平均质量分 57
JJF
懒于奋斗的躯体,是徒有虚名的摆设;懒于思考的大脑,是寸草不生的荒漠!
展开
-
socket实现大型文件传输
最近需要做网络传输的项目,需要实现较大文件的传输。在网上收集了不少资料,但是各有各的做法,尤其是关于文件自动接收这一块不太清楚。 经过图书馆查阅后还是找到了一种解决办法,虽然做的不太专业,但是思路比较精简、清晰,也希望能给大家尤其是刚学习socket套接字的人一些启示。 对于套接字socket我其实也不太懂,并且一般资料都可原创 2011-12-18 17:03:10 · 45688 阅读 · 60 评论 -
自己动手写推箱子游戏——界面(源码)
MFC开发自己的推箱子游戏第一:推箱子游戏的主界面 游戏的主界面其实就是8×8的区域,在初始化函数中定义它们的矩形区域,里面是我自己收集的8个选关void CPushBoxDlg::Initi_State(int i,int j){ //int i,j原创 2011-08-08 14:10:49 · 7561 阅读 · 2 评论 -
使用信标对象实现线程同步
使用信标对象实现线程同步 信标对象也属于系统内核对象之一,它包含有计数,当使用计数为0时,信标对象处于无信号状态;当使用计数大于0时,信标计数处于有信号状态。 相关函数: CreateSemaphore:用于创建一个信标对象 HANDLE Cre原创 2011-08-08 16:09:25 · 1104 阅读 · 0 评论 -
使用关键代码段实现线程同步
使用关键代码段实现线程同步关键代码段又称临界区,指的是一小段代码,在代码执行前,它需要独占某些资源。在程序中通常将多个线程同时访问某个资源的代码作为临界区。相关函数 InitializeCriticalSection:用于初始化临界区对象 void Initi原创 2011-08-08 16:08:39 · 969 阅读 · 0 评论 -
使用互斥对象实现线程同步
使用互斥对象实现线程同步 互斥对象属于系统内核对象,它能够使线程拥有对某个资源的绝对访问权。互斥对象主要包含使用数量,线程ID和递归计数器等信息。其中线程ID表示当前拥有互斥对象的线程,递归计数器表示线程拥有互斥对象的次数。 互斥对象的使用方式:当互斥对象的原创 2011-08-08 13:40:07 · 1563 阅读 · 0 评论 -
线程的挂起,唤醒和终止
//如果是利用h=AfxBeginThread()创建线程,需要获取句柄,h->m_hThread线程的挂起在CreateThread()等函数创建线程时,可以指定线程的挂起状态,在运行过程中也可以挂起线程 DWORD SuspendThread(HANDLE原创 2011-08-07 17:13:06 · 13092 阅读 · 0 评论 -
AfxBeginThread函数创建进程
UINT Multilp(LPVOID pThreadParam){ CMutilThread1Dlg *pdlg=(CMutilThread1Dlg *)pThreadParam; CString s2; s2=""; for(int i=1;i原创 2011-08-07 16:13:02 · 1607 阅读 · 0 评论 -
事件对象实现线程同步
线程同步,由于多个线程同时访问进程中的同一个资源,这就可能造成线程之间的混乱,因此需要线程同步解决相关问题1:使用事件对象实现线程同步 相关函数 CreateEvent:用于创建一个事件对象 HANDLE CreateEvent(LPSECUR原创 2011-08-08 13:07:38 · 1131 阅读 · 0 评论 -
线程的创建
线程的创建1:使用CreateThread函数创建线程 HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpsa,DWORD cbStack,LPTHREAD_START_ROUTINE lpStartAddr,LPVOID lpvT原创 2011-08-07 14:47:09 · 1205 阅读 · 0 评论 -
访问MFC动态连接库
访问MFC动态连接库1:定义一个与连接库中相同的抽象类class CShowDlg{public: virtual void ShowNoteDlg(char *text)=0;//定义纯虚方法};2:定义两个函数指针类型,用于访问连接库中的函数t原创 2011-08-03 17:33:30 · 748 阅读 · 0 评论 -
创建MFC动态连接库
向动态链接库中添加类和资源 1:创建类,还可以加入其他资源#define EXPORT11 _declspec(dllimport)EXPORT11 class CShowDlg{ public: virtual void ShowNot原创 2011-08-03 17:34:42 · 775 阅读 · 0 评论 -
自己动手写推箱子游戏——菜单(源码)
第二:制作菜单,完善功能 一:选关功能 自己要为游戏设置一些关数,而且难度应该递增,这个选关的对话框需要新建,主要是返回一个表示关数的数值void CPushBoxDlg::OnChose() { CchoseDlg dlg; dlg.m_ch原创 2011-08-08 14:40:10 · 10188 阅读 · 0 评论 -
自己动手写推箱子游戏——设计师(源码)
第三:设计师 好的程序不仅能够让玩家玩设计好的游戏,还应该让他们的新想法得以实现,这就需要为他们提供设计平台 1:布局在游戏界面中,新建一个类来完成里面的全部功能,玩家可以点选右边的图来设计自己的想法左边是布局,可以用一个CRect数组设置其区域原创 2011-08-08 14:55:00 · 2381 阅读 · 1 评论 -
数独的生成与破解算法分析
首先在此向大家道歉,我在上一篇博文中转载了一篇关于数独的生成与破解算法的文章,其中作者的破解算法确实不错,也没有问题,但是其生产算法是有问题的。虽然初看起来每行每列都符合要求,但是是无解的。例如,我用其破解算法解由它生成算法生成的数独,结果没有解法出来。 最近在网上看到不少人发帖,生成数独的算法如下: 1 随机生成一个1-9的整数; 2:随机原创 2011-11-14 22:05:31 · 5036 阅读 · 0 评论 -
基于MSComm控件的GSM模块程序
最近要写一个关于GSM模块的发送短信的程序,在网上找了半天的代码和资料都不太懂。有些需要什么dll文件的呀,有些需要专门数据结构的呀。 其中众所周知MSComm控件是操作串口的很好工具。 经过不少挫折,最终还是自己写了个非常简单的程序,代码很简单,非常容易理解,只有300行左右原创 2011-10-05 23:55:32 · 1532 阅读 · 0 评论 -
24位真彩色位图转换成8位灰度图片的代码实现
void CGrayDlg::OnToEignt() { if(date==NULL) { MessageBox("图像内容为空");原创 2011-10-13 18:00:20 · 1738 阅读 · 0 评论 -
保存CBitmap为bmp图片
保存CBitmap为bmp图片2008-10-20 18:06void CMyStatic::SaveBmpFile(CString str,CBitmap& bitmap,CDC* pDC){//open & create bitmap fileCFile转载 2011-10-11 17:48:04 · 1445 阅读 · 0 评论 -
截图功能的实现
保存抓图的简单实现 实现类似的抓屏功能(简单的截图功能)其实只要两个函数就行了,以下从网上摘抄的一段代码的改写,算是原创吧(http://www.wenyiwen.cn/a24/how161448.htm):函数1: CopyScreenToBitmap //转载 2011-09-27 21:49:15 · 1007 阅读 · 0 评论 -
加速键使用方法详解(示例)
加速键的使用第一步:创建加速键表在Resource试图中添加一个Accelerator资源表,在表中根据条件输入值。第二步:在类中添加一个HACCEL的变量 HACCEL m_hAccel;第三步:在初始化函数里面加载对应的加速键表m原创 2011-08-10 14:21:26 · 3503 阅读 · 1 评论 -
盘符加载和CFindFile类的遍历
void CFindFileDlg::find(CString dir) { CFileFind ff; CString path; //MessageBox(dir); if(dir.Right(1)!="//") dir+="//"原创 2011-08-10 21:57:44 · 1362 阅读 · 0 评论 -
套接字模型
套接字I/O模型1:Select模型 Select模型是一种常见的模型,通过select函数来确定套接字状态。在网络应用程序中,通过一个线程来设计一个循环,不停的调用select函数,判断套接字上是否存在数据或者是否能够向套接字写入数据等int select(int原创 2011-08-09 18:50:53 · 1159 阅读 · 0 评论 -
套接字函数详细介绍
套接字函数介绍 套接字函数通常封装在Ws2_32.dll动态连接库中,头文件是winsock2.h,因此用户需要引用头文件和链接库 #include “winsock.h” //引用头文件 #pragma comment(lib,”ws2_32原创 2011-08-09 18:08:50 · 1187 阅读 · 0 评论 -
自己动手写推箱子游戏——休闲放松(源码)
第四:休闲放松 有些玩家希望在玩游戏过程中听歌放松等休闲,所以我自己设计了一个简易的mp3、mp4播放器播放器能够对各个盘符中的mp3、mp4文件进行搜索,免去玩家的查阅对于播放器,大家可以用MFC里面的Windows Media Player控件原创 2011-08-08 15:11:58 · 2335 阅读 · 1 评论 -
动态连接库的访问
访问动态链接库通过两个API函数实现,首先根据LoadLibrary函数加载动态连接库模块,获得模块句柄;然后调用GetProcAddress函数根据模块句柄和函数名获取动态连接库中函数的地址,这样即可调用函数,工程中需要包含相应的dll文件 HMODULE m_hM原创 2011-08-03 11:54:50 · 636 阅读 · 0 评论 -
动态连接库的创建
动态连接库 1:创建通用动态连接库,其中DllMain函数是动态链接库的入口函数,在加载动态连接库中将要调用该函数 #include "stdafx.h"BOOL APIENTRY DllMain( HANDLE hModule,原创 2011-08-03 11:55:40 · 660 阅读 · 0 评论 -
客户区坐标转换成屏幕坐标
<br />客户区坐标转换成屏幕坐标<br /> CPoint pt;<br /> pt=point;//假设point为客户区坐标<br />ClientToScreen(pt);<br />此后pt表示的就是屏幕坐标<br /><br />屏幕坐标转换成客户区坐标,使用GetCursorPos()函数<br />void CXXXDlg::Func()<br />{<br /> POINT point;<br /> ::GetCursorPos(&point);//获取屏幕坐标<br /> C原创 2011-05-21 12:36:00 · 4089 阅读 · 0 评论 -
获取控件在对话框上的坐标
<br />MFC 获取控件在对话框上的坐标(2010-09-18 16:57:04)转载标签: 杂谈 分类: VC <br /> 今天看到网上有人咨询MFC上获取控件坐标的问题,后来查了查资料,其实很简单的,也就几个函数的<br />应用,还有就是对应坐标的转换。 <br />void CControlDlg::OnMatch()<br />{<br /> // TODO: Add your control notification handler code here<br /> CRect rec转载 2011-05-21 12:35:00 · 1555 阅读 · 0 评论 -
列表控件
<br />列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用BOOL Create.创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:<br />LVS_ICON ,LVS_SMALLICON ,LVS_LIST, LVS_REPORT 这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示<br />LVS_EDITLABEL原创 2011-05-20 19:48:00 · 815 阅读 · 0 评论 -
文件的基本操作
<br />使用CFile类新型文件操作<br />一:<br />1.读取文件信息<br /> virtual BOOL Open(LPCTSTR lpszFileName. UINT nOpenFlags,CFileException *pError=NULL)<br /> lpszFileName:要打开的文件名,可以包含完整路径,也可以是相对繁的文件名<br /> nOpenFlags 表示文件打开标记,常见属性<br /> CFile::modeCreate 创建原创 2011-05-17 17:34:00 · 535 阅读 · 0 评论 -
文件的写入、定位和异常处理
<br />一:写入文件<br />virtual void Write(const void *lpBuf,UINT nCount)//从缓冲区写入文件<br /> lpbuf:表示待写入的数据缓冲区<br /> nCount向文件中写入数据的数量<br />void WriteHuge(const void *lpBuf,UINT nCount)//用于写入大量数据<br />二:定位文件<br />virtual LONG Seek(LONG lOff,UINT nForm)//重新设置文件原创 2011-05-17 17:33:00 · 1036 阅读 · 0 评论 -
MFC中图像输出
图像输出利用CDC类的位图图函数输出位图到设备上下文 BOOL BitBlt(int x,int y,int width,int height,CDC *pSrcDC,int xSrc,int ySrc,DWORD dwRop) x,y表示目标区域左上角坐标 widthheigth 表示位图分大小 pSrcDC 表示源设备上下文指针 xSrc,ySrc表示源设备上下文起点坐标,函数从该起点复制位图到目标设备 dwRop 表示光栅操作代码BOOL原创 2011-05-15 17:26:00 · 2320 阅读 · 0 评论 -
使用标签控件设计多页面窗口
使用标签控件设计多页面窗口1:使用 CTabCtrl类的InsertItem(int nitem,LPCTRSTR lpszitem,int nimage)方法 nitem表示索引位置,第一个个为0 lpszitem表示标签页文本 nimage表示标签页显示的图像索引2 :调用CTabCtrl的SetCurSel(int item)方法设置一个标签页为当前的标签页 item表示设置当前的标签页索引,返回值是控件之前选中的标签页索引原创 2011-05-13 16:18:00 · 1964 阅读 · 0 评论 -
利用GDI对象设置字体
使用windows操作系统提供的6个DGI对象例如:1:在对话框中定义一个CFont m_font对象2:在初始化函数中创建字体对象m_font.CreateFont(24,24,0,0……);3:在OnPaint()函数中原创 2011-05-13 11:40:00 · 1669 阅读 · 0 评论 -
MFC/VC++中的文本输出
文本输出1:在指定区域输出文本 1:使用TextOut(int x,int y,const CString& str);方法 2:使用DrawText(const CString&str,LPRECT lpRect,UINT nFormat)方法在指定区域绘图 lRect:区域对象 nFormat:格式 常用DT_CENTER(水平居中)DT_LEFT(居左)DT_RIGHT DT_WORD_ELLIPSIS无法完全显示时,用省略号示例::els原创 2011-05-13 11:41:00 · 5037 阅读 · 0 评论 -
MFC/GDI绘制图形
绘制图形1:相关CDC类提供的图形绘制方法 MoveTo(int x,int y);用于移动当前的坐标点到指定的位置上 LineTo(int x,int y);用于从当前坐标点绘制一条直线到参数指定的位置 x,y表示x和y轴坐标的终点 Arc(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4); 以一个外接矩形为依据绘制一个椭圆的弧线原创 2011-05-13 11:39:00 · 3675 阅读 · 1 评论 -
文件管理
<br /><br />文件管理<br />一:获取文件属性信息<br /> 1:CFile类中的BOOL GetStatus(CFileStatus &rstatus)const;<br /> rstatus:文件状态对象,类型为CFileStatus,这是个存储状态信息的数据结构,结构成员为:<br /> CTime m_ctime 文件创建时间<br /> CTime m_mtime文件修改时间<br />原创 2011-05-20 18:31:00 · 589 阅读 · 0 评论 -
windows主要鼠标消息
<br />windows主要鼠标消息<br />WM_LBUTTONDOWN 鼠标停留在客户区,同时鼠标左键按下<br />WM_LBUTTONUP 鼠标左键释放<br />WM_RBUTTONDOWN 鼠标停留在客户区,邮件按下<br />WM_RBUTTONUO 右键释放<br />WM_MBUTTONDOWN 鼠标在客户区,中键按下<br />WM_MBUTTONUP 中键释放<br />WM_MOUSEMOVE 鼠标指针在客户区移动<br />WM_LBUTTONDBLCLK 第原创 2011-05-21 12:36:00 · 1672 阅读 · 1 评论 -
CRegKey类的注册表使用
注册表操作,使用MFC提供的CRegKey类,封装了相应的操作,但是需要在对话框源文件中引用atlbase.h头文件主要方法 注册表是个树结构,由根键,子键和项组成,其中项是子键下的数据,包括项的名称,数据类型和数据1:Create:用于创建所标志的键,声明原创 2011-07-31 18:25:27 · 1044 阅读 · 0 评论 -
元文件的使用
元文件的使用保存图形和重绘图形 1:元文件设备上下文CMetaFileDC类,派生于CDC 2:使用Windows元文件的步骤 1:利用CMetaFileDC类的构造函数构造一个元文件对象,然后利用该类的Create成员函数创建一个Windows设备上下文原创 2011-07-31 09:38:21 · 1094 阅读 · 0 评论 -
INI文件的使用及示例
INI文件的访问1:Win.ini文件的写入 使用 的WritePrivateProfileString()函数,函数声明是 BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName原创 2011-07-31 15:23:43 · 998 阅读 · 0 评论