-
VC++6.0 窗口过程函数及消息发送、响应测试实例
VC++6.0 窗口过程函数及消息发送、响应测试实例,在应用程序中窗口过程函数及其消息发送、响应机制的使用,能够方便程序集中处理各类消息,使得整个程序的架构更加合理、清晰。窗口过程函数及其消息发送、响应机制的使用方法:
⑴自定义消息:
在Resource.h文件中自定义消息:#define WM_MYMSG 2000
⑵添加窗口过程函数的声明和实现体:
①在.h文件中添加窗口过程函数声明:
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
②在.cpp文件中添加窗口过程函数实现体:
⑶发送消息的方式比较:
①this->SendMessage(WM_MYMSG,0,0);
②this->PostMessage(WM_MYMSG,0,0);
③this->SendNotifyMessage(WM_MYMSG,0,0);
这三个函数都可以将指定的消息发送到某个窗口,但是这三种消息的发送方式存在如下的区别:SendMessage立即调用窗口过程函数,而且直到窗口过程函数处理完消息后才返回。PostMessage则是将指定的消息寄送到窗口消息队列后立即返回。对于SendNotifyMessage来说,如果窗口是调用线程创建的,SendNotifyMessage为该窗口调用窗口过程函数,并且等待窗口过程函数处理完消息后才返回;如果窗口是由不同的线程创建的,SendNotifyMessage将指定的消息传给窗口过程函数后立即返回。
- 2023-03-05 04:00:03下载
- 积分: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
-
VC6.0 对联合查询后的数据结果集进行排序
VC6.0 对联合查询后的结果进行排序,对获得的记录集进行排序,这是个同样实用的功能,特别在一些中小企业的数据库系统中,尤其实用,对数据分析很有帮助。本例子中的排序主要是两种常用形式:升序排列和降序排列。最终的排序结果绑定于Datagridview数据显示控件中显示。
- 2022-07-13 07:35:09下载
- 积分: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++ 使用不同的画笔绘制图形
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的游戏内存修改器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
-
修改Windows IE的主页:VC++编写的程序
VC++编写源码实现修改IE浏览器的主页,这个现在已经不是什么新鲜功能了,现在好像有360在干扰用户自定义主页,唉,360好流氓哦,本程序实现的修改IE主页,同样会被360拦截,因此测试前请关掉360哦。
本程序通过修改注册表的方式来修改IE主页,这种方式是惯用的一种方法。
- 2022-04-25 09:53:44下载
- 积分:1
-
VC6.0模拟实现模态对话框
VC++6.0模拟实现模态对话框,一般情况下的窗口都是基于此方式 ,当然也有非模态对话框,本款模态对话框,实现要点如下:
void MyDialog::OnButton1() //确定按钮
{
CDialog::OnOK();//调用OnOK()函数退出对话框
}
void MyDialog::OnButton2() //取消按钮
{
CDialog::OnCancel();//调用OnCancel()函数退出对话框
}
void MyDialog::OnButton3() //关闭按钮
{
int nRet = 5; // 自定义返回值
CDialog::EndDialog(nRet); // 调用EndDialog退出对话框
}
- 2022-05-27 01:17:22下载
- 积分:1
-
VC++在视图中使用鼠标进行绘图操作(涂鸦)
VC++ ——在视图中使用鼠标进行绘图操作(涂鸦),按下鼠标左键,载入"十字"光标,移动鼠标即可实现绘制图形,但窗口不能自动重绘,定义各变量及具体实现:
void CBaseDocViewDemo1View::OnLButtonDown(UINT nFlags, CPoint point)
{
SetCursor(m_Hcursor);//使用新光标
m_bDraw=TRUE;//进入绘图状态
m_pOld=point;
SetCapture();//捕捉鼠标
CRect rect;
GetClientRect(&rect);//获取客户窗口矩形区域
ClientToScreen(&rect);//转换为屏幕坐标
ClipCursor(rect);//限定鼠标不能移出客户窗口
CView::OnLButtonDown(nFlags, point);
}
void CBaseDocViewDemo1View::OnLButtonUp(UINT nFlags, CPoint point)
{
m_bDraw=FALSE;//取消绘图状态
ReleaseCapture();//释放鼠标捕捉
ClipCursor(NULL);//取消鼠标区域的限制
CView::OnLButtonUp(nFlags, point);
}
- 2023-04-03 12:40:04下载
- 积分:1
-
VC++ 6.0 弹球游戏&打砖块源代码
PenBall游戏源代码,VC++ 6.0 编写开发的弹球游戏&打砖块源代码,这个游戏的叫法很多了,有人叫做乒乓球游戏,有的叫“撞球游戏”,这里被称为弹球游戏和打砖块游戏,不管叫做么吧,大家一看到运行截图就明白了是什么游戏。这款撞球游戏分为三关,第三关是最难的,还有音效,操作挺方便,球拍自动跟随鼠标移动,运动自如。分享本源码主要是让大家参考一些从游戏中剥离出来的技巧,比如控制对象移动、碰撞检测反弹等,可用于其它的VC++开发项目中。
- 2022-08-13 12:20:23下载
- 积分:1