-
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创建带有文本指示的自定义进度条,自己创建的带有文本的进度条:,
GetClientRect(&rectClient);//获取进度条窗口
CBrush brush;
brush.CreateSolidBrush(::GetSysColor(COLOR_3DFACE));//获取系统画刷
dc.FillRect(&rectClient, &brush);//填充进度条窗口
VERIFY(brush.DeleteObject());//删除画刷
if (m_nCurrentPosition m_nUpper)//进度条没有运行
{
return;
}
brush.CreateSolidBrush(RGB(0, 0,255));//创建蓝色画刷
RECT rectFill;//定义填充区域
float fillwidh=(float)((float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower))*rectClient.right;
::SetRect(&rectFill,
0,// 左上X坐标
0,//左上Y坐标
(int)fillwidh,//右下X坐标
rectClient.bottom+1);//右下Y坐标
dc.FillRect(&rectFill,&brush);//填充进度条区域
VERIFY(brush.DeleteObject());
CString percent;
percent.Format("已完成:%.0f%%", 100.0*(float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower));
dc.SetTextColor(RGB(255,0,0));//设置文本颜色
dc.SetBkMode(TRANSPARENT);//透明背景
dc.DrawText(percent, &rectClient, DT_VCENTER|DT_CENTER|DT_SINGLELINE);//显示文本信息
- 2023-06-16 21:25:02下载
- 积分:1
-
VC 重载打开文件对话框,添加删除按钮
VC++ 重载打开文件对话框,添加删除按钮,实现思路:设置文件对话框的模板为IDD_MYFILEDLG,使用GetPathName();获取选中文件。打开文件对话框是这样实现的:
if( filedlg.DoModal ()==IDOK )//打开文件对话框
{
CString fileName = filedlg.GetFileTitle();
SetWindowText(fileName);
}
以上代码仅是参考,完整的代码文件请自行下载吧。
- 2022-02-01 14:41:10下载
- 积分:1
-
vc++ 降序查询及SQL语句实现
vc++ 对数据进行 降序查询的例子,还包括了SQL语句实现,降序查询后,查询到的内容显示在DataGrid中,这个例子需要结合数据库才能实现。数据库查询语句如下:
UpdateData(true);
m_adodc.SetRecordSource("select*from shuzcx order by 年龄 desc");
m_adodc.Refresh();
- 2022-02-18 16:15:52下载
- 积分: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++ FTP、HTTP 多线程断点续传下载文件
VC++ FTP、HTTP 多线程断点续传下载文件,在断点下载时,可获取远程站点信息,如:是否支持断点续传、要下载的文件大小和创建时间等。可设置下载的线程数、下载任务的线程函数、多线程断点续传下载一个文件、关于BOOL bForceDownload/*=FALSE*/的定义,如果为 TRUE 表示强制性重新下载,以下载的部分将会被删除,FALSE 表示断点续传,并创建多线程下载使用的对象和数据缓冲、删除多线程下载使用的对象和数据缓冲。
启动多线程下载,返回 0 表示失败,1表示成功,2表示不用下载了,因为该文件已经下载过了
智能判断要保存的文件是否已经存在,且大小和创建时间一致,如果不是强制性下载,则不需要再下载了。
- 2022-03-19 00:12:39下载
- 积分:1
-
VC++ 定义3种样式的ComboBox下拉列表框
VC++ 定义3种样式的ComboBox下拉列表框(组合框),主要是简易式、下拉式、下拉列表式。在简易式或下拉式的编辑框中输入文本,然后点击[
- 2022-02-02 08:39:36下载
- 积分:1
-
VC++ 6.0 OnCmdMsg消息处理和自定义消息对话框用法
VC++ 6.0 消息处理和自定义消息对话框用法,通过重载函数OnCmdMsg从而使不能够处理主框架命令的非模式对话框,具备了响应主框架命令的功能。二是说明自定义消息的用法。重载OnCmdMsg后,改变的窗口标题,自定义消息参数:x=%d,y=%d"。
- 2022-01-25 16:51:34下载
- 积分: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++使用标签控件创建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