-
VC++ 自定义每个Tab内的Dlg效果
VC++ 创建窗体的Tab,为每一个TAB页创建不同的Dlg,如图所示,每一个TAB内有可能是一张图片,也有可能是一个登录界面或一个Combobox,或者是一个树形菜单,总之,每个TAB除了隔离显示内容外,还自定义了多种形式的数据,增加了TAB窗口的实用性,最终运行效果请参见截图所示。
- 2022-08-21 06:29:38下载
- 积分:1
-
VC 扫描仪控制程序
这是一个在VC++环境下实现的扫描仪扫描管理程序,用于启动扫描和停止扫描,只是实现基本的扫描仪控制,不过本程序的顺利运行需要扫描仪支持,且是指定型号,窗口中对应的功能,由下面的按钮事件来响应:
开始扫描:
void CScanManageDlg::OnButton1()
{
m_Scan.ScannerAvailable();
m_Scan.OpenScanner();
m_Scan.StartScan();
}
停止扫描:
void CScanManageDlg::OnButton2()
{
m_Scan.StopScan();
}
- 2022-05-27 18:23:01下载
- 积分:1
-
vc++CThreadEx范例源码
vc++CThreadEx范例源码,创建两个线程分别显示不同的图片,形成交替显示的效果,演示了线程同步和异步,并涉及到定时器的使用。在交替显示图片时,每半秒触发定时器,演示了在一个周期内创建线程、启动线程、向工作线程发出退出命令、等待工作线程、销毁工作线程、主线程停止交替显示,i交替取值0和1、解除同步、检验是否有消息到达等各个环节的实现代码。
- 2022-03-03 18:54:02下载
- 积分:1
-
VC++ 创建WinExample和MFCExample窗口程序演示
VC++ WinExample和MFCExample程序演示,是创建此两类程序的演示,一种是使用WINAPI的方式 创建程序窗口,另一种是采用MFC方式创建窗口,下面列举一上结使用WINAPI方式创建窗口的具体代码,完整代码请下载本源码。
// 创建窗口
hWnd = CreateWindow("HelloMsg",// 窗口类名
"我的窗口", // 窗口标题
WS_OVERLAPPEDWINDOW,// 窗口样式
CW_USEDEFAULT,// 窗口最初的x位置
CW_USEDEFAULT,// 窗口最初的y位置
CW_USEDEFAULT,// 窗口的宽度
CW_USEDEFAULT,// 窗口的高度
NULL,// 父窗口句柄
NULL,// 窗口菜单句柄
hInstance,// 应用程序实例句柄
NULL);// 创建窗口的参数窗口消息处理函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_LBUTTONDOWN:// 鼠标左键按下消息
MessageBox(NULL, "欢迎进入Visual C++!", "问候", 0);
break;
case WM_DESTROY:// 窗口销毁消息
PostQuitMessage(0);
break;
default:
// 默认消息处理函数
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
- 2022-09-16 09:05:03下载
- 积分:1
-
VC 结合定时器隐藏进程一定时间
VC++ 隐藏进程,这个例子结合了计时器来实现,不是永久隐藏,是隐藏进程一定时间,根据定时器返回的时间,重新显示进程。
要实现这个过程,可编写以下代码:
LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;
//加载RegisterServiceProcess函数所在的链接库
hDLL = LoadLibrary("KERNEL32");
//得到RegisterServiceProcess函数的地址
lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL, "RegisterServiceProcess");
//执行RegisterServiceProcess函数,在任务列表中隐藏程序
lpRegisterServiceProcess(GetCurrentProcessId(),1);
//卸载链接库
FreeLibrary(hDLL);
//设定定时器
SetTimer(0,m_nSeconds*1000,NULL);
//隐藏程序的同时,隐藏窗口
ShowWindow(SW_HIDE);
后续会卸载链接库,请下载源码查看源代码文件。
- 2022-04-17 12:20:46下载
- 积分:1
-
VC++ 数据库万能打印模块
VC++ 数据库万能打印模块,书中的例子,最终运行效果请参见截图。操作方法:首先在“选择数据库类型”下拉列表中选择数据库类型,这里有两种,Access和SQL Server。选择完数据库后,单击“连接数据库”进入相应的操作界面,选择数据表及字段,单击“确定”按钮,即可进入数据查询页面,在该页面中查以查询数据、打印数据。单击“查询”按钮,打开“查询”模块,单击“打印设置”按钮,打开“设置”模块,这里可以设置纸张,页边距,打印方向,字体,颜色,表格高度,线条宽度等等。单击“打颖按钮,进入打印预览页面,在该页面中单击“打颖按钮,即可打印数据。
详细的代码请下载源码包。
- 2022-01-29 04:39:18下载
- 积分:1
-
VC++ 实现对软件的简单加密(注册)功能
VC++ 实现对软件的简单加密,本程序是通过C盘序列号来加密文件,实现软件的注册功能,软件号和C盘序列号同时正确才可验证,而C盘的序列号是唯一的,获得c盘序列号的代码如下:
DWORD VolumeSerialNumber;
GetVolumeInformation("c:",NULL,12,&VolumeSerialNumber,NULL,NULL,NULL,10);
VolumeSerialNumber^=0x12345678;//本机c盘序列号简单运算
m_usernum=VolumeSerialNumber;
UpdateData(false);
然后通过序列的判断,来验证加密是否正确,比如下边的代码来做加密验证:
UpdateData(true);
DWORD num;
num=m_usernum;
num^=0x1999aa98+12;//加密算法
if(!(num==m_serialnum))
{
AfxMessageBox("输入的序列号不正确!");
return;
}
- 2022-11-07 22:05:03下载
- 积分:1
-
VC++ 6.0“通讯簿”程序示例
VC++ 6.0仿Windows“通讯簿”程序示例,其实是个挺不错的程序,不管是功能或是界面,都做的不错。可对通讯录中的人进行分类管理,每个记录在通讯录中的联系人,都包括了详细信息,比如城市、传真、移动电话、家庭电话、邮编、省/自治区、街道地址、国家等信息,业务中的联系人则与普通联系人的信息不一样,比如显示、城市、部门、职务、传真、业务名、办公室、邮编、街道地址等,有兴趣可下载源码二次开发。
- 2022-05-20 01:58:32下载
- 积分:1
-
VC++ .NET 实现窗口内控件自适应屏幕尺寸大小而变化
VC++ .NET 实现窗口内控件自适应屏幕尺寸大小而变化,这个具体点就是,窗口中的边框和按钮等元素,会随着窗口的变大自动变大,并保持原有的比例,调用了CSelfResizeWindow::Rectify()来实现,我觉得是个很实用的窗体设计技巧。关于本源代码的几点说明:
自定义类CSelfResizeWindow实现窗口和控件的自适应,根据屏幕尺寸调整大校
使用步骤 :
1. 使需要自适应的窗口类继承于类CSelfResizeWindow,在OnInitDialog()中调用
__super::Init(this, 1, 3000);(其中1和3000是资源ID的范围,在Resource.h
中用宏定义的,Init函数的参数根据情况确定。)
2. 给窗口类添加OnSize()消息响应函数,在OnSize()函数
中调用__super::Rectify();即可。
- 2023-01-25 01:40:04下载
- 积分: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