-
VC++ MFC程序的生命期设置方法
MFC程序的生命期,调用视的成员函数以便显示空闲处理进行的次数,程序最终显示Onldle已经被调用的次数:
//定义字符串对象
CString strCount,strTem;
strTem="OnIdle已经被调用的次数为:";
//获取设备上下文,以便在上面写文字
pDc=GetWindowDC();
//格式化字符串
strCount.Format("%s%d",strTem,lCount);
//输出文本
pDc->TextOut(100,100,strCount);
//刷新视图的客户区
Invalidate();
//设防资源
ReleaseDC(pDc);
//延迟,以便能看清显示的文字(毫秒单位)
Sleep(100);
- 2022-10-05 03:25:03下载
- 积分:1
-
VC++ 多文档程序实现为新建的文档设置显示字体
VC++ 多文档程序实现为新建的文档设置显示字体,m_str="多文档应用程序实例!";//输出文本
CFontDialog dlg;//字体对话框
dlg.GetCurrentFont(&m_lf);
if(dlg.DoModal()==IDOK)//显示对话框
dlg.GetCurrentFont(&m_lf);//获取用户设置的字体信息
return TRUE;
CString str=pDoc->m_str;//获取输出文本
LOGFONT lf=pDoc->m_lf;//获取字体结构
CFont *pFont=new CFont;
pFont->CreateFontIndirect(&lf);//创建字体
CFont *poldFont=pDC->SelectObject(pFont);//载入DC
pDC->TextOut(40,40,str);//输出文本
pDC->SelectObject(poldFont);//恢复字体
- 2022-12-19 01:50:03下载
- 积分:1
-
VC++ 实现定制打印页的页眉和页脚
VC++ 实现定制打印页的页眉和页脚,除了自定义打印页脚和页眉外,还可根据每页显示行数,设置打印页数,并且在需要时,屏蔽默认函数对OnDraw的调用。打印方面的定制,可参考以下代码:
void CMultiPrint2View::PrintHeader(CDC *pDC)//定制页眉
{
pDC->TextOut(0,0,"设置打印页眉和页脚测试:来首诗吧:再别康桥");
}
void CMultiPrint2View::PrintFooter(CDC *pDC)//定制页角
{
CMultiPrint2Doc* pDoc = GetDocument();//获取文档指针
ASSERT_VALID(pDoc);
CString str;
CPoint point(0,-1440*10-1000);
str.Format("当前文档:%s",(LPCSTR)pDoc->GetTitle());//获取当前文档名
pDC->TextOut(point.x,point.y,str);
str.Format("第%d页,共%d页",m_nPage,(pDoc->m_stringArray.GetUpperBound()/pDoc->m_LinePerPage+1));
CSize size=pDC->GetTextExtent(str);//获取输出文本宽度
point.x+=1440*6+1600-size.cx;
pDC->TextOut(point.x,point.y,str);
}完整的代码请下载源码吧。
- 2022-07-05 00:30:40下载
- 积分:1
-
VC6.0 使用信号量Semaphore实现线程的同步
VC6.0 使用信号量Semaphore实现线程的同步,使用信号量实现线程同步,设置访问保护对象的最多线程数为2,确定当前已经启动运行的线程数目,可以创建线程。
CWinThread* pThread=AfxBeginThread(ThreadProc,&m_Edit);//开辟一个工作线程,
int thread=0;//全局变量记录当前运行线程的数目
CSemaphore mySemaphore(2,2);//创建CSemaphore类对象
UINT ThreadProc(LPVOID pParam)//工作线程入口函数
{
CEdit *pedit=(CEdit*)pParam;
CString str;
thread++;//线程数目加1
str.Format("%d",thread);
pedit->SetWindowText(str);//编辑框显示
CSingleLock singlelock(&mySemaphore);//创建CSingleLock类对象
singlelock.Lock();//计数器初始值减1
MessageBox(NULL,"信号量控制访问资源线程数","提示",MB_ICONWARNING);//弹出对话框
thread--;//线程数目减1
str.Format("%d",thread);
pedit->SetWindowText(str);//编辑框显示
return 0;
}
- 2022-02-20 19:37:49下载
- 积分:1
-
VC++ 遍历记录集的实现方法和代码
VC++ 遍历记录集的例子,需要数据库配合,核心代码如下:
//连接数据库
OnInitADOConn();
//设置查询字符串
_bstr_t bstrSQL = "select * from employees order by 员工编号 desc";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
//遍历记录集
while(!m_pRecordset->adoEOF)
{
m_Grid.InsertItem(0,"");
m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));
m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));
m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));
m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
}
//断开数据库连接
ExitConnect();
- 2022-09-02 14:45:03下载
- 积分:1
-
VC++ 6.0 定制分割条(分隔条)的样式及大小
VC++ 6.0 定制分割条,也就是窗体的分隔条,将窗口分隔成若干个部分,用来显示不同的内容,该窗格视图为CStaticSplitWnd4View,该窗格大小不能通过拖动改变,不过我们可以通过菜单命令动态改变大小,窗格视图为CView2,该窗格大小不能通过拖动改变,窗格视图CView3和CView4都可以通过分隔条的拖动来改变视图大校
本示例中的分隔条经过了初级的美化,而且也向用户展示了,如何通过分割条来固定分栏窗格视图的大小,如何让分隔条不支持拖动等功能。
- 2023-08-22 18:20:04下载
- 积分:1
-
VC++ MFC绘图打印技术范例
VC++ 6.0 基于MFC的绘图及打印技术实例,附上了完整源码,打开程序后,可单击“测试”按钮,弹出绘图设置窗口,设置好参数绘图,然后打印出数据。方法步骤:
//创建画笔C++对象
CPen* pPenBlue = new CPen;
//创建画笔
pPenBlue->CreatePen(PS_SOLID,pDoc->m_thick,pDoc->m_color);
//选中当前画笔,并保存以前的画笔
CPen* pOldPen = pDC->SelectObject(pPenBlue);
POSITION posi=pDoc->m_PointList.GetHeadPosition();
while(posi)
{
CPoint point(pDoc->m_PointList.GetNext(posi));
pDC->Ellipse(point.x,point.y,point.x+
pDoc->m_long,point.y+pDoc->m_short);
}
//恢复旧画笔
pDC->SelectObject(pOldPen);
//删除新建的画笔对象
delete pPenBlue;
//设置映射模式
pDC->SetMapMode(MM_ANISOTROPIC);
CSize winSize = CSize(1024, 768);
//设定窗口大小
pDC->SetWindowExt(winSize);
//得到实际设备每逻辑英寸的象素数量
int xLogPixPerInch,yLogPixPerInch;
xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);
yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);
//得到设备坐标和逻辑坐标的比例
int xExt,yExt;
xExt=winSize.cx*xLogPixPerInch/96;
yExt=winSize.cy*yLogPixPerInch/96;
//设定视口大小
pDC->SetViewportExt(xExt,yExt);
- 2022-01-25 14:09:09下载
- 积分:1
-
华南理工大VC++ 实验报告:学生信息管理系统 附文档
华南理工大软件学院2016级VC++ 实验报告:学生信息管理系统 附文档,这套系统的功能分为两部分,学生部分和教务管理员部分。包括系统功能模块划分;类体系设计,即主要数据和函数功能描述;界面设计等。
1)学生功能:查看信息:个人基本信息,课表,成绩表等内容
修改信息:可修改个人基本信息
2)教务员功能: 查看信息:学生个人基本信息、课表、成绩等内容
修改信息:学生个人基本信息、课表、成绩等内容
添加学生信息:学生个人基本信息后对同班级同年级的学生进行成绩表和课表的初始化
删除学生全部信息
展示同专业同年级学生的基本信息
对同专业同年级的学生的各科成绩进行排名
3)其他功能:分文件储存不同专业不同年级学生的信息资料,方便信息的处理
添加新年级和专业的数据并初始化
各模块说明:
1)基本信息类:个人基本信息,信息的生成和获取
2)学生信息类:继承于基本信息类,增加学生特有的信息,信息的生成和获取,
- 2022-03-16 11:59:31下载
- 积分:1
-
VC++ 删除已存在的存储过程
VC++ 演示在程序中删除已存在的存储过程,VC6存储过程相关操作实例,删除方法很简单,创建对象,如下代码示:
UpdateData(true);
BOOL result;
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
_bstr_t sql;
sql = "drop procedure "+m_edit+" ";
result = m_AdoConn.ExecuteSQL(sql);
m_AdoConn.ExitConnect();
if(result)
MessageBox("存储过程已删除!");
else
MessageBox("存储过程不存在!");
- 2022-12-24 15:50:03下载
- 积分:1
-
vc 串口接收和发送数据的例子 Cs结构
这是一个CS结构(包括了服务端和客户端)的串口调试程序,测试时,两者都要运行,本程序可让你熟悉串口的相关操作,在客户端和服务端,您都要定义以下几个参数:
m_Comm.SetCommPort(1); //设置串口
m_Comm.SetRThreshold(1); //设置收到多少个字符后触发OnComm事件
m_Comm.SetPortOpen(TRUE); //打开串口
源码中包括了两部分的代码,请下载后编译对应目录中的源码,先运行客户端。
- 2022-02-06 06:48:34下载
- 积分:1