-
VC++ 6.0 GetTickCount() 高精度计时功能的实现实例
本源码演示在VC++ 6.0环境下实现高精度计时功能,可在此基础上修改完善成一个毫秒级计时器。运行编译文件后,单击窗口中的按钮,即可激活计时功能,在弹出的窗口中显示计时时间,以毫秒计,请参见截图。计时部分的具体实现代码请参考以下代码:
void CDemoDlg::OnTest()
{
//开始时间
DWORD dwStart = GetTickCount();
for (int i = 0; i < 10000; i++)
{
for (int j = 0; j < 10000; j++)
{
}
}
//结束时间
DWORD dwStop = GetTickCount();
//时间间隔
DWORD dwElapse = dwStop - dwStart;
CString strText = _T("");
strText.Format(_T("时间间隔:%d毫秒"), dwElapse);
AfxMessageBox(strText);
}
- 2022-07-22 05:40:03下载
- 积分:1
-
VC++ ado 登录模块实现范例
VC++ ado 登录模块实现范例,因为使用ADO模块,所以要先初始化COM组件库,然后调用ADO库连接数据库,读取用户名密码是否与数据库的相符,相符则登录成功,不相符则弹出提示信息。本源码比较简单,演示了基本的基于数据库的用户名和密码判断程序,面向VC++初学者吧。
- 2023-03-17 05:10:03下载
- 积分:1
-
VC++ 设置打印图形的位置
VC++ 6.0 设置打印图形的位置,实现所见即所得的打印功能。
if(pDC->IsPrinting())//判断是否因打印或打印预览而调用OnPrepareDC()函数
{
pDC->SetViewportOrg(250,400);//设置视口坐标原点
}
//以下为显示和打印的内容
pDC->TextOut(10,10,"实现所见即所得的打印");
pDC->SetBkMode(TRANSPARENT);
pDC->Rectangle(10,40,310,350);
pDC->Ellipse(50,50,210,220);
pDC->Ellipse(70,240,280,320)
//设置映射模式
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*600/xLogPixPerInch; //按照打印机扩大视口
yExt=winSize.cy*600/yLogPixPerInch;
pDC->SetViewportExt(xExt,yExt); //设定视口大小
- 2022-01-27 16:52:24下载
- 积分: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++ 使用right outer join查询SQLServer数据库的例子
VC++ 使用right outer join查询SQLServer数据库的例子,查询结果显示在DATAGRID数据控件中,测试前请确保数据库连接已成功,且数据库非空。窗体界面效果如截图所示,注:测试时数据库连接失败,这是测试电脑的问题。
- 2023-03-02 00:25:04下载
- 积分:1
-
VC++ 非模态对话框与应用程序之间的数据交换
VC++ 6.0演示非模态对话框与应用程序之间的数据交换的实现过程,单击鼠标右键弹出非模态对话框!实现非模态对话框的数据交换!在示例中,用户在窗口中单击鼠标右键,所弹出的颜色设置对话框,就是一个非模态对话框,设置颜色后,将值传回到主窗口。
pDialog->ShowWindow(SW_HIDE);//隐藏对话框
CRect dlgRect;
pDialog->GetWindowRect(&dlgRect);//获取对话框窗口大小
ClientToScreen(&point);//将鼠标位置转换为屏幕坐标
//移动对话框窗口
pDialog->MoveWindow(point.x, point.y,dlgRect.Width(),dlgRect.Height());
//将当前画刷的值赋予对话框变量
pDialog->m_blue=b;
pDialog->m_green=g;
pDialog->m_red=r;
pDialog->UpdateData(false);//更新控件
pDialog->ShowWindow(SW_SHOW);//显示对话框
CView::OnRButtonDown(nFlags, point);
另外还有获取非模态对话框设置的颜色值、获取视图等功能,请下载本实例源码包。
- 2022-08-07 22:51:14下载
- 积分:1
-
VC++ 创建生成大文件
VC创建大文件的例子,这个例子是VC++源码实例,面向VC++6.0运行环境。测试时注意生成的路径,要重新 设置一下,生成文件 不是问题,但生成大文件 往往会导致一系列问题,这个源码的实例向大家介绍如何避免出现这些问题。
// 处理出错信息
//获得信息
LPVOID lpMsgBuf; //Windows will allocate
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0,
GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言
(LPTSTR)&lpMsgBuf, 0, NULL );
//显示
::MessageBox(0, (LPCTSTR)lpMsgBuf, _T("GetLastError"), MB_OK|MB_ICONINFORMATION );
//lpMsgBuf中是你要的错误提示.
//释放内存
::LocalFree( lpMsgBuf );
return;
- 2022-02-26 16:50:15下载
- 积分:1
-
VC++ 利用Word文档实现打印功能
VC++ 6.0 利用Word文档实现打印功能,本示例是将需要打印的内容导入到Word文档中,然后直接打开Word文档,用户通过Word选择打印功能,打印出内容,其核心的打印是由word完成的,因此你的电脑上需要安装有Word,并且与打印机已连接好。
在调试时注意:时需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“Program FilesCommon FilesSystemado”目录下。
例:如果你的系统盘为C盘,则该文件位于“C:Program FilesCommon FilesSystemado”目录中。所以需要打开工程文件,并展开“FileView”视图中的“Header Files”节点,然后双击“StdAfx.h”文件,将代码中的“d:Program FilesCommon FilesSystemadomsado15.dll”改为“c:Program FilesCommon FilesSystemadomsado15.dll”。
- 2022-03-05 03:24:43下载
- 积分:1
-
VC++ 6.0 改变视图窗口的背景色
VC++ 改变视图窗口的背景色,在窗口的显示区自定义颜色,有兴趣可参考以下代码:
void CFaceControl1View::OnChageviewbk() //改变背景色
{
m_rgbBack=RGB(0,128,128);
Invalidate(true);
}
BOOL CFaceControl1View::OnEraseBkgnd(CDC* pDC)
{
CBrush Brush (m_rgbBack);// 创建一个新的刷子
CBrush* pOldBrush = pDC->SelectObject (&Brush);// 把刷子选入设备环境
//获得需要檫除背景的区域
CRect reClip;
GetClientRect(&reClip);
//重绘该区域
pDC->PatBlt(reClip.left , reClip.top , reClip.Width () , reClip.Height() , PATCOPY);
//释放刷子
pDC->SelectObject (pOldBrush);
return TRUE;//必须返回TURE
}
- 2022-08-04 05:28:13下载
- 积分:1
-
又一个简单的VC++ 定时关机功能实现
又一个简单的VC++ 定时关机功能实现,程序运行后屏蔽最大化,将最小化重定向至隐藏窗口,在Windows托盘处显示图标,双击该图标可调用出定时关机设置窗口。具体实现定时关机功能的代码如下:
// 将图标放入系统托盘
TrayNotifyMsg(NIM_ADD, IDR_MAINFRAME, "定时关机");
// 初始化关机时间为23点.
SYSTEMTIME systime;
((CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER_TIME))->GetTime(&systime);
systime.wHour = 23;
systime.wMinute = 0;
systime.wSecond = 0;
((CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER_TIME))->SetTime(&systime);
// 设定定时器
SetTimer(1, 1000, NULL);
// 显示当前的系统时间
ShowCurrentTime();
return TRUE; // return TRUE unless you set the focus to a control
}
- 2022-02-02 22:49:18下载
- 积分:1