-
VC++ 自定义每个Tab内的Dlg效果
VC++ 创建窗体的Tab,为每一个TAB页创建不同的Dlg,如图所示,每一个TAB内有可能是一张图片,也有可能是一个登录界面或一个Combobox,或者是一个树形菜单,总之,每个TAB除了隔离显示内容外,还自定义了多种形式的数据,增加了TAB窗口的实用性,最终运行效果请参见截图所示。
- 2022-08-21 06:29:38下载
- 积分:1
-
VC 6.0 获得驱动器序列号
VC 6.0 获得驱动器序列号,本例子中可以指定驱动器分区,也就是大家说的D盘、E盘,每个磁盘分区的序列号,这个序列号标识ID分区后由系统自动指定,我们可编写以下代码实现此功能:
//获得实际存储驱动器号的字符串长度
dwNumBytesForDriveStrings=GetLogicalDriveStrings(0,NULL)*sizeof(TCHAR);
//如果字符串不为空,则表示有正常的驱动器存在
if (dwNumBytesForDriveStrings!=0) {
//分配字符串空间
hHeap=GetProcessHeap();
lp=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,
dwNumBytesForDriveStrings);
//获得标明所有驱动器的字符串
GetLogicalDriveStrings(HeapSize(hHeap,0,lp),lp);
//将驱动器一个个放到下拉框中
while (*lp!=0) {
Driver->AddString(lp);
lp=_tcschr(lp,0)+1;
}
}
- 2022-02-06 01:57:21下载
- 积分: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
-
VC++ 使用CDib类实现显示与保存BMP文件
VC++ 使用CDib类实现显示与保存BMP文件,可以通过文件菜单打开BMP文件,并显示,也可实现存储BMP文件!代码中涉及到了判断DIB是否为空、获取DIB宽度和高度,程序中调用ConstructPalette来创建调色板。相关设置代码如下:
m_hDIB=m_dib.LoadFile(file);//调用ReadDIBFile()读取图像
if(m_hDIB==NULL)
{
AfxMessageBox("图像格式不正确!");// 提示出错
return FALSE;
}
SetDib();// 初始化DIB
if (m_hDIB == NULL)// 判断读取文件是否成功
{
AfxMessageBox("读取图像时出错");// 提示出错
return FALSE;// 返回FALSE
}
SetPathName(lpszPathName);// 设置文件名称
SetModifiedFlag(FALSE);// 初始化脏标记为FALSE
return TRUE;// 返回TRUE
- 2022-02-26 00:19:37下载
- 积分:1
-
VC++ 显式链接:关闭计算机
VC++ 显式链接:关闭计算机,制作一个竖长形的窗口,功能包括了关机、重启、注销、锁机等功能。
- 2023-05-28 20:55:03下载
- 积分:1
-
VC 向加密狗中写入数据
VC 向加密狗中写入数据,与加密狗相关的例子。
DogAddr = 10; //设置起始地址
DogBytes = m_Data.GetLength(); //设置数据的长度
DogData = m_Data.GetBuffer(0); //设置写入的数据
if (WriteDog()==0)
MessageBox("数据写入成功");
- 2022-07-14 23:43:14下载
- 积分:1
-
VC++ Win32 DLL的创建:获取最大和最小数(使用导出函数关键字)
VC++ 创建Win32 DLL的例子附源码:获取最大和最小数(使用导出函数关键字)。编译本项目源码后,将直接在Debug目录下生成Get_Max_Min.Dll文件。
Get_Max_Min_Dll文件夹下为Win32 DLL的创建:获取最大和最小数(使用.def文件)源码。
- 2023-02-27 05:35:03下载
- 积分:1
-
简单演示多线程的创建和使用VC++源码
一个VC++ Win32程序执行单元——多线程 的创建和使用例子,测试时请在CMD控制台中运行Exe,之后看到的运行结果如图所示,代码部分,请参考以下:
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // 安全
DWORD dwStackSize, // 堆栈大小
LPTHREAD_START_ROUTINE lpStartAddress, // 起始地址(函数名)
LPVOID lpParameter, // 参数
DWORD dwCreationFlags, // 是否启动
LPDWORD lpThreadId // 新生成的线程ID
);
int main(int argc, char* argv[])
{
HANDLE hThreadProc;
DWORD dwThreadId;
hThreadProc=CreateThread(
NULL,
NULL,
ThreadProc,
NULL,
0, //使线程立即运行
&dwThreadId
);
printf("Now another thread has been created,ID=%d
",dwThreadId);
//等待新线程运行结果
::WaitForSingleObject(hThreadProc,INFINITE);
::CloseHandle(hThreadProc);
return 0;
}
- 2022-03-26 13:48:22下载
- 积分:1
-
VC++三种直线扫描转换算法范例演示
本源码演示了三种VC++直线扫描转换算法,这3种方式是:bresenham方法、数值微分法、中点画线法。本程序同时是一个MFC单文档程序,进行直线段扫面转换算法的算法验证。
1.使用Wizard建立单文档程序;
2.绘制20*20的网格线,格子X和Y方向间隔均为20像素,网格起始坐标在(20,20)。我们使用此网格模拟像素矩阵(),格子交叉点是像素中心。
3.输入直线段两端点,可使用以下两种方法之一:
a)对话框输入
b)鼠标在网格内以鼠标左键按下-拖动-抬起方式输入。注意:直线段两端点要自动取整到模拟的像素中心位置
4.进行直线段扫描转换,通过点击鼠标右键调用方式或者菜单调用的方式执行。计算完成后,将扫描转换结果,在模拟的像素矩阵中,使用圆形显示出来。
通过这个实验,我们可以熟悉扫描的算法,其中要注意的是判断直线的斜率,分情况处理竖直直线段、斜率绝对值大于1、斜率绝对值小于1的情况,这部分需要花费一些时间去算。总之还是对扫描算法的理解和编程基矗
- 2022-03-19 09:46:38下载
- 积分:1
-
VC++ 音频编程:一款简洁实用的Mp3播放器
VC++ 音频编程:一款简洁实用的Mp3播放器源代码,只是实现基本的MP3文件播放、暂停、音量控制等功能,界面采用的传统窗体风格,核心代码在下载本源码后,可参考Mp3PlayerDlg.cpp文件,运行效果如图所示。
- 2023-08-24 23:00:04下载
- 积分:1