-
VC 邮件收发客户端 发Email 接收邮件等
基于VC6.0编写的一个学习实例 ,与Email接收和发送相关的程序,用这个程序可接收指定邮箱中的邮件,也可以发送邮件,代码中涉及到了POP3和SMTP相关的使用技巧,在主代码文件 MyEmailClientDlg.cpp中有相应的注释,是你学习VC++收发邮件的一个参考范例。
收信时需要指定POP3服务器地址,发Email时则需要指定比较 多的参数,也就是大家平时发信时的必填项,比如邮件标题、主体内容、邮件地址等,有兴趣的可下载本源码研究,运行的效果可参考截图。
- 2022-12-25 17:05:03下载
- 积分:1
-
VC++ 生成Brush笔刷程序
VC++ 生成Brush笔刷程序,使用了三种方法创建笔刷,第一种和第二种使用构造函数,第三种 创建CBrush类的一个对象myBrush3,调用CreateBrushIndirect()函数。创建了纯色、斜纹、网状方格三种形式的笔刷。
void CCreateBrushView::OnDraw(CDC* pDC)
{
CCreateBrushDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
// 第一种方法创建画刷
// 定义时调用构造函数
CBrush myBrush1(RGB(0,0,255));
CBrush* pOldBrush1 = pDC->SelectObject(&myBrush1);
pDC->Rectangle(100,150,250,400);
// 恢复画刷对象
pDC->SelectObject(pOldBrush1);
// 第二种方法创建画刷
// 定义时调用构造函数
CBrush myBrush2(HS_BDIAGONAL,RGB(255,0,0));
CBrush* pOldBrush2 = pDC->SelectObject(&myBrush2);
pDC->Rectangle(300,100,450,360);
// 恢复画刷对象
pDC->SelectObject(pOldBrush2);
// 第三种方法创建画刷
// 创建CBrush类的一个对象myBrush3
CBrush myBrush3;
// 设置LOGBRUSH结构;
LOGBRUSH lb;
lb.lbStyle = BS_HATCHED;
lb.lbColor = RGB(0,255,0);
lb.lbHatch = HS_CROSS;
// 调用CreateBrushIndirect()函数
myBrush3.CreateBrushIndirect(&lb);
CBrush* pOldBrush3 = pDC->SelectObject(&myBrush
- 2022-01-30 23:25:40下载
- 积分:1
-
VC++制作支持文字滚动的静态文本控件
VC++静态控件:用Static Text控件显示滚动文字,制作一个支持文字滚动的静态文本控件,静态文本控件,用来滚动显示文字,滚动速度可调,参考下句调整:
m_RollupStatic.SetSpeed(1);//滚动速度(0-慢速,1-中速,2-快速)。
- 2022-03-21 13:53:35下载
- 积分: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++ 6.0 使用消息实现线程通信
线程通信:使用消息实现线程通信,一个了解多线程与消息通信的例子,以下是实现的主要代码:
LRESULT CThreadCommunicationDlg::OnDisplayResult(WPARAM wParam,LPARAM lParam)
{
int nResult = (int)wParam;
SetDlgItemInt(IDC_STATIC_RESULT,nResult,FALSE);
return 0;
}
void CThreadCommunicationDlg::OnButtonCalculate()
{
m_pCalculateThread=
(CCalculateThread*)AfxBeginThread(RUNTIME_CLASS(CCalculateThread));
Sleep(200);
m_pCalculateThread->PostThreadMessage(WM_CALCULATE,m_nLastOperand,NULL);
}
完整的源代码请下载本源码包。
- 2022-02-02 07:06:27下载
- 积分:1
-
VC++ 表格式简历打印的实现
本源码演示在VC++中打印简历模板,是一个采用表格设计的简历界面,VC++将按设计的模式打印出来,就像使用Word打印一样的功能。
以下代码可作为参考:
//获取位图所有数据
m_bitdata = m_pRecord->GetFields()->GetItem((long)9)->GetChunk(m_factsize);
HBITMAP m_hmap ;
if (m_bitdata.vt==VT_ARRAY |VT_UI1)
{
//定义一个数据缓冲区
m_bitbuffer = new char[m_factsize];
//将m_buffer指向m_bitdata
SafeArrayAccessData(m_bitdata.parray,(void**)&m_buffer);
//复制位图数据到m_bitbuffer;
memcpy(m_bitbuffer,m_buffer,m_factsize);
SafeArrayUnaccessData(m_bitdata.parray);
void* m_factbitdata ; //实际的位图数据
//temp指向位图信息头
temp = m_bitbuffer+sizeof(BITMAPFILEHEADER);
BITMAPINFOHEADER * m_bitheader = (BITMAPINFOHEADER*)temp;
//获取位图信息,它包括位图信息头和调色板
BITMAPINFO* m_bitinfo = (BITMAPINFO*)temp;
//获取位图的实际数据
m_factbitdata = (void*)(m_buffer+((LPBITMAPFILEHEADER)m_bitbuffer)->bfOffBits);
CClientDC m_dc(this);
//创建位图
hbitmap = CreateDIBitmap(m_dc.m_hDC,m_bitheader,CBM_INIT,m_factbitdata,m_bitinfo,DIB_RGB_COLORS);
delete [] m_bitbuffer;
}
- 2022-07-02 18:31:16下载
- 积分:1
-
VC 按1:1 按宽度和高度 平铺拉伸放大缩小图片
本程序为VC++缩放图片的小示例,可按宽度、高度、充满、居中显示等多种方式显示图片,具体来说可完成以下放大或缩小图片的功能:
//1:1比例,不放大也不缩小:
void CZoomImgDemoDlg::On11()
{
m_wndImage.SetStrechType(STRECH_1_1);
}
//按宽度放大:
void CZoomImgDemoDlg::OnFullX()
{
m_wndImage.SetStrechType(STRECH_FULL_X);
}
//按高度
void CZoomImgDemoDlg::OnFullY()
{
m_wndImage.SetStrechType(STRECH_FULL_Y);
}
//充满窗口
void CZoomImgDemoDlg::OnFull()
{
m_wndImage.SetStrechType(STRECH_FULL);
}
//居中显示,大小为窗口的一半
void CZoomImgDemoDlg::OnCenter()
{
m_wndImage.SetStrechType(STRECH_CENTER);
}
- 2022-01-28 02:37:20下载
- 积分:1
-
VC++ 使用不同的画笔绘制图形
VC++ 使用不同的画笔绘制图形,演示绘制矩形、绘制多段折线、绘制椭圆、弧形和饼图,使用不同的画笔类型来绘制不同的几何图形,演示了一些VC++图形绘制的基础技巧使用方法。下面的代码演示了如何绘制出这些图形:
//以实线画笔绘制矩形
pOldPen=pDC->SelectObject(&pen[0]);
pDC->Rectangle(10, 10, 110, 110);
pDC->TextOut(10, 115, "绘制矩形");
//使用虚线画笔和函数Polyline输出多段折线
pDC->SelectObject(&pen[1]); //载入虚线画笔
CPoint pts[]={CPoint(190, 20), CPoint(200, 60), CPoint(270, 40), CPoint(210, 80),
CPoint(250, 100), CPoint(300, 30), CPoint(310, 80)};
pDC->Polyline(pts, 7); //绘制多端折线
pDC->TextOut(180, 115, "绘制多段折线");
// 使用Pie和Arc输出饼图和弧形
pDC->SelectObject(&pen[2]); //载入点线画笔
pDC->Ellipse(10, 140, 160, 240);//绘制椭圆
pDC->SelectObject(&pen[3]); //载入点划线画笔
pDC->Pie(20, 150, 150, 230, 160, 160, 10, 160);
pDC->SelectObject(&pen[4]);//载入双点划线画笔
pDC->Arc(20, 150, 150, 230, 10, 220, 160, 220);
pDC->TextOut(10, 245, "绘制椭圆、弧形和饼图");
pDC->SetTextColor(RGB(0,0,255));
pDC->TextOut(220, 200, "使用不同的画笔绘制各种图形");
//恢复设备上下文的原有画笔
pDC->SelectObject(pOldPen);
//删除所创建的画笔资源
for (int i=0; i
- 2022-02-13 06:16:01下载
- 积分:1
-
VC6.0合并结果集进行查询的方法源码演示
VC6.0合并结果集进行查询的方法源码演示,合并多个数据集的查询,具体到本例子中,就是合并人员表和学生信息表中编号,姓名,年龄字段的结果,然后再进行需要的查询,查询结果绑定在DataGridView控件中显示。
本例需要配合SQLSERVER数据库,需要自行准备测试数据库,并附加和连接好。调试界面如截图所示。
- 2023-04-29 06:35:03下载
- 积分: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