-
VC++ ado 登录模块实现范例
VC++ ado 登录模块实现范例,因为使用ADO模块,所以要先初始化COM组件库,然后调用ADO库连接数据库,读取用户名密码是否与数据库的相符,相符则登录成功,不相符则弹出提示信息。本源码比较简单,演示了基本的基于数据库的用户名和密码判断程序,面向VC++初学者吧。
- 2023-03-17 05:10:03下载
- 积分:1
-
VC 重载打开文件对话框,添加删除按钮
VC++ 重载打开文件对话框,添加删除按钮,实现思路:设置文件对话框的模板为IDD_MYFILEDLG,使用GetPathName();获取选中文件。打开文件对话框是这样实现的:
if( filedlg.DoModal ()==IDOK )//打开文件对话框
{
CString fileName = filedlg.GetFileTitle();
SetWindowText(fileName);
}
以上代码仅是参考,完整的代码文件请自行下载吧。
- 2022-02-01 14:41:10下载
- 积分:1
-
VC++6.0 窗口过程函数及消息发送、响应测试实例
VC++6.0 窗口过程函数及消息发送、响应测试实例,在应用程序中窗口过程函数及其消息发送、响应机制的使用,能够方便程序集中处理各类消息,使得整个程序的架构更加合理、清晰。窗口过程函数及其消息发送、响应机制的使用方法:
⑴自定义消息:
在Resource.h文件中自定义消息:#define WM_MYMSG 2000
⑵添加窗口过程函数的声明和实现体:
①在.h文件中添加窗口过程函数声明:
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
②在.cpp文件中添加窗口过程函数实现体:
⑶发送消息的方式比较:
①this->SendMessage(WM_MYMSG,0,0);
②this->PostMessage(WM_MYMSG,0,0);
③this->SendNotifyMessage(WM_MYMSG,0,0);
这三个函数都可以将指定的消息发送到某个窗口,但是这三种消息的发送方式存在如下的区别:SendMessage立即调用窗口过程函数,而且直到窗口过程函数处理完消息后才返回。PostMessage则是将指定的消息寄送到窗口消息队列后立即返回。对于SendNotifyMessage来说,如果窗口是调用线程创建的,SendNotifyMessage为该窗口调用窗口过程函数,并且等待窗口过程函数处理完消息后才返回;如果窗口是由不同的线程创建的,SendNotifyMessage将指定的消息传给窗口过程函数后立即返回。
- 2023-03-05 04:00:03下载
- 积分:1
-
VC++ 农历日历/日程记事
这个小程序由VC++6.0代码编写,以阴历和阳历相结合的方式显示的日历,起的名字叫做"桌面精灵"吧.其中还包含二十四节气以及一些中西方节日,这些特殊的日期都用不同的颜色进行标注。右键单击主界面,在弹出的菜单中选择“窗口设置”命令,打开“窗口设置”模块,在该模块中,用户可以设置窗口的显示风格,包括普通窗口、总在最前和嵌入桌面3种,还可以进行系统设置,包括开机自动运行、鼠标穿透和透明度设置。通过设置这些风格可以更灵活的使用桌面精灵模块。
新建备忘录:右键单击主界面,在弹出的菜单中选择“新建备忘录”命令,打开“新建备忘录”窗口,在该模块中,可以添加备忘录信息,用来提醒用户,一以免忘记重要的工作。
- 2023-08-29 05:45:03下载
- 积分:1
-
基于VC6的游戏内存修改器2源代码
VC6.0写一个简单的内存修改器,输出一个变量的值和地址实现原理:
BOOL ReadProcessMemory(
HANDLE hProcess,
LPCVOID lpBaseAddress,
LPVOID lpBuffer,
DWORD nSize,
LPDWORD lpNumberOfByteRead
);
WriteProcessMemory(hProcess,lpBaseAddress,lpBuffer,nSize,lpNumberOfByteRead);
编写测试程序
搜索内存
- 2022-01-25 22:26:20下载
- 积分:1
-
VC++ 获取主机名和IP地址及多线程运行示例
VC++6.0获取主机名和IP地址,并演示多线程的运行示例,作者:fiwen。
获取IP地址是单击窗口右上角的“获缺按钮,即可显示主机名称和该机IP地址,多线程运行演示则打开后程序立即运行,左右两侧不同的线程,执行不同的任务,各自互不影响。
多线程演示部分,分别用了两个线程,每一个线程控制一个do while循环来运行,比如其中一个线程是这样写的:
CString str;
bool ReadData= TRUE;
int i=1;
do
{
//从1到99的平方
str.Format("%-3d的平方:%-5d",i,i*i);
pList->AddString(str);
Sleep(100);
i++;
}
while (ReadData=TRUE);
return 0;
- 2022-01-20 22:35:47下载
- 积分:1
-
VC++ 版 GDI+程序设计实例源代码实例集
gdiplus应用实例,在网络上广泛流传的“GDI+程序设计实例源代码”中使用的是C#语言,且封装了开源对象,
源代码主要在 “Form1.cs” 中,其功能的实现形式与.Net的MSDN帮助不同。
作者对该源代码进行了移植,在VC的非 UNICODE 环境下进行了修改,主要处理:
1、提供了一个 multibyte 与 widechar 的转化类 CWideCharString
实现 char* 与 WCHAR* 的转换有许多方法,如:
a) CWideCharString(char*) 得到 WCHAR*
b) L"char* string" 得到 WCHAR*
c) 在非UNICODE环境下,CString(WCHAR*) 得到 char*
2、将原C#中的Math、Shell等对象转换为普通的VC函数,如定义了 rand_Next 等。
3、将原C#代码中的new改为VC的引用或指针,避免了在VC中对new的重载和delete的繁杂调用所带来的内存泄漏
4、定义了一组MyDrawString函数,替换原代码中的 graphics.DrawString(...),保持了原C#代码中DrawString的参数顺序和引用方式,增加了两个 _MakeA_RGB 函数
5、因为 Image::Save 要求保存的文件不得存在,而在演示中可能会反复执行Save,所以提供了 MyImageSave 函数,先判断文件是否存在,若存在则删除,然后 Save.
6、为尽可能保持原代码的风格,在 CWalkLtDemo.cpp 的 OnDraw(...) 函数中提供一个void DoGdiplusDemo(...) 函数,该函数负责向各功能演示函数中传递所需要的绘图区和Graphics实例。
7、在主菜单“查看”项下增加了“GDI+功能演示”和“当前演示的源代码”菜单,并在工具条上增加了相应按钮。
8、程序已在VC6和VC++.NET中进行了完全的测试。
本源码包中使用的 gdiplus*.h 中对 Color 和 Point 进行了重新声明,分别为:
GdiPlusColor 和 PointI
为与MSDN中的 Color 和 Point 相一致,在WalkLtDemoHelp.h中使用了 typede
- 2023-07-17 07:35:04下载
- 积分:1
-
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
-
端口扫描VC6.0程序示例
扫描端口,程序里面有一些相关的技巧是可以借鉴的,比如增加列表框标题栏的某一列、在列表框中加一条、显示列表框标题栏、单击“扫描单个端口”单选按钮、单击“扫描多个端口”单选按钮、开始扫描时绑定进度条组件、不合理IP的处理、扫描单个端口、连接主机,测试端口是否打开、设置扫描完毕状态、将扫描结果填充到列表框中、测试主机的某个端口是否打开、保存扫描结果到文本文件中等。
- 2022-10-09 07:35:03下载
- 积分:1
-
VC++使用标签控件创建TAB标签页
VC++使用标签控件创建标签页,向大家展示VC++中基本标签控件的使用方法。如效果图所示的标签窗口,一共是创建了两个标签,单击后可切换对应的内容,在WEB开发中,这种TAB功能也有很普遍的应用。你可参考如下对TAB标签的定义:
TC_ITEM tcItem;//标签结构
tcItem.mask=TCIF_TEXT;
tcItem.pszText="标签1";
m_ctlTab.InsertItem(0,&tcItem);//添加Tab标签页
tcItem.pszText="标签2";
m_ctlTab.InsertItem(1,&tcItem);//添加Tab标签页
m_ctlTab.SetCurSel(0);//设置Tab标签1为选中状态
GetDlgItem(IDC_STATIC1)->ShowWindow(TRUE);
GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);//隐藏静态控件2
GetDlgItem(IDC_BUTTON1)->ShowWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE);//隐藏按钮控件2
CRect rect1,rect2;
GetClientRect(rect1);
GetDlgItem(IDC_STATIC1)->GetClientRect(rect2);
GetDlgItem(IDC_STATIC1)->MoveWindow((rect1.left+50),(rect1.top+80),rect2.Width(),rect2.Height());//移动静态控件1
GetDlgItem(IDC_BUTTON1)->GetClientRect(rect2);
GetDlgItem(IDC_BUTTON1)->MoveWindow((rect1.left+80),(rect1.top+120),rect2.Width(),rect2.Height());//移动按钮控件1
- 2022-03-29 18:20:27下载
- 积分:1