-
VC++ 自定义每个Tab内的Dlg效果
VC++ 创建窗体的Tab,为每一个TAB页创建不同的Dlg,如图所示,每一个TAB内有可能是一张图片,也有可能是一个登录界面或一个Combobox,或者是一个树形菜单,总之,每个TAB除了隔离显示内容外,还自定义了多种形式的数据,增加了TAB窗口的实用性,最终运行效果请参见截图所示。
- 2022-08-21 06:29:38下载
- 积分: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++CThreadEx范例源码
vc++CThreadEx范例源码,创建两个线程分别显示不同的图片,形成交替显示的效果,演示了线程同步和异步,并涉及到定时器的使用。在交替显示图片时,每半秒触发定时器,演示了在一个周期内创建线程、启动线程、向工作线程发出退出命令、等待工作线程、销毁工作线程、主线程停止交替显示,i交替取值0和1、解除同步、检验是否有消息到达等各个环节的实现代码。
- 2022-03-03 18:54:02下载
- 积分:1
-
VC++ 三种方法创建不同类型的画刷
VC++ 三种方法创建不同类型的画刷,本源码实例 演示了VC++使用三种方法创建画笔,最核心的代码:
void CCreatePenView::OnDraw(CDC* pDC)
{
CCreatePenDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
// 第一种方法创建画笔
for (int i=0; i < 7; i++)
{
// 定义时调用构造函数
CPen myPen1(PS_SOLID + i,1,RGB(255,0,0));
CPen *pOldPen1 = pDC->SelectObject(&myPen1);
pDC->MoveTo(10,20*i+10);
pDC->LineTo(750,20*i+10);
// 恢复画笔对象
pDC->SelectObject(pOldPen1);
}
// 第二种方法创建画笔
for (int j = 0;j < 7; j++)
{
CPen myPen2; // 创建CPen类的一个对象myPen2
// 调用CreatePen()函数创建画笔
myPen2.CreatePen(PS_SOLID,j,RGB(0,255,255));
CPen *pOldPen2 = pDC->SelectObject(&myPen2);
pDC->MoveTo(10,180+20*j);
pDC->LineTo(750,180+j*20);
// 恢复画笔对象
pDC->SelectObject(pOldPen2);
}
// 第三种方法创建画笔
// 创建CPen类的一个对象myPen3
CPen myPen3;
// 设置LOGPEN结构;
LOGPEN lp ;
lp.lopnColor = RGB(255,0,255);
lp.lopnStyle = PS_SOLID ;
lp.lopnWidth.x = 8 ;
// 调用CreatePen
- 2023-04-20 18:00: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
-
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++写的登录程序
VC++基于VC++写的登录程序,结合数据库实现的,是一个简单数据库程序,测试前请做以下工作:
1.配置ODBC数据源
2.新建CAdminDatasets类(方便登录对话框的调用),新建过程当中以CRecordset为基类,数据源选中对应数据库,然后选中对应用户登录表
3.新建登录对话框,以CDialog为基类。然后按程序代码执行登录检查
- 2022-08-22 14:43:26下载
- 积分:1
-
VC++制作支持文字滚动的静态文本控件
VC++静态控件:用Static Text控件显示滚动文字,制作一个支持文字滚动的静态文本控件,静态文本控件,用来滚动显示文字,滚动速度可调,参考下句调整:
m_RollupStatic.SetSpeed(1);//滚动速度(0-慢速,1-中速,2-快速)。
- 2022-03-21 13:53:35下载
- 积分:1
-
3个VC++ win注册表编程操作实例
本源码中有三个VC++操作表的相关例子,每一个都属于比较简单那种,展示注册表的操作技巧,有兴趣的下载源码包。
HKEY hKEY; //定义有关的 hKEY, 在查询结束时要关闭。
LPCTSTR data_Set="SoftwareMicrosoftWindowsCurrentVersion"; //子键目标
//打开与路径 data_Set 相关的 hKEY,第一个参数为根键名称,第二个参数表。
//表示要访问的键的位置,第三个参数必须为0,KEY_READ表示以查询的方式。
//访问注册表,hKEY则保存此函数所打开的键的句柄。
long retopen=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_READ, &hKEY));
if(retopen!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行
{
MessageBox("错误: 无法打开有关的hKEY!");
return;
}
//查询有关的数据 (系统用户姓名 owner_Get)。
LPBYTE owner_Get=new BYTE[80];
DWORD type_1=REG_SZ ;
DWORD cbData_1=80;
//hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,"RegisteredOwner"。
//表示要查 询的键值名,type_1表示查询数据的类型,owner_Get保存所。
//查询的数据,cbData_1表示预设置的数据长度。
//与RegQureyValueEx()类似,hKEY表示已打开的键的句柄,"RegisteredOwner"
//表示要访问的键值名,owner_Set表示新的键值,type_1和cbData_1表示新值。
//的数据类型和数据长度
UpdateData(true);//获得编辑框数据
if(m_Adduser.IsEmpty()||m_Addpassword.IsEmpty())//用户名、密码不能为空
{
AfxMessageBox("输入用户名、密码不能为空!");
return;
}
- 2022-02-22 09:55:12下载
- 积分:1
-
VC++ DirectShow开发指南源码集
VC++ DirectShow开发指南源码集,涉及的内容几乎涵盖了在Windows平台上使用DirectShow进行C++编码的方方面面。全书详细介绍了DirectShow的基础知识,重点讨论了Filter的开发,以及DirectShow
应用程序的开发,包括目前非常流行的如音视频采集、数码摄像机的支持、非线性
编辑等应用,深入分析了DirectShow SDK提供的部分典型源代码例子,结合作者个人的一些开发实践,通过案例和开放源码分析,进一步介绍DirectShow的实务应用。
此为本书的配套源码集,对VC++编程者来说,是比较不错的编程资料。
- 2022-02-15 05:44:18下载
- 积分:1