登录
首页 » VC++源码 » VC++ 使用自定义消息进行线程间的通信

VC++ 使用自定义消息进行线程间的通信

于 2023-03-13 发布 文件大小:13.75 kB
0 271
下载积分: 2 下载次数: 1

代码说明:

VC++ 使用自定义消息进行线程间的通信,在本例子中,当计数到17的整数倍时,工作线程通过自定义消息与主线程通信。最后会弹出消息框:当前计数器的计数为17的整数倍。计数器有几个选项:高速计数、低速计数,相关参数设置如下:   SpeedControl=1;   GetDlgItem(IDC_RADIO1)->EnableWindow(true);//单选按钮生效   GetDlgItem(IDC_RADIO2)->EnableWindow(true);   GetDlgItem(IDC_RADIO3)->EnableWindow(true);   GetDlgItem(IDC_STAR)->EnableWindow(false);//开始按钮无效   numinfo.pedit=&m_Num;   numinfo.hwnd=GetSafeHwnd();//获取主线程窗口指针   CWinThread* pThread=AfxBeginThread(ThreadFunc,&numinfo);//创建新的线程并开始执行

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC6.0 多表分组统计查询销售数据
    VC6.0 多表分组统计销售数据,查询和统计图书的销售数量和库存数量,合理使用分组多表查询可有效提升效率,减少对数据库的查询次数,本示例就是演示如何使用分组多表查询的一个简单的例子,对于查询产品销售最、销售业绩都很方便。   提示:本源码中仅包括了VC++文件和代码,并不包括数据库,需要自己准备测试数据库。
    2023-02-05 17:45:03下载
    积分:1
  • VC++ 遍历记录集的实现方法和代
    VC++ 遍历记录集的例子,需要数据库配合,核心代码如下:   //连接数据库   OnInitADOConn();   //设置查询字符串   _bstr_t bstrSQL = "select * from employees order by 员工编号 desc";   //创建记录集指针对象实例   m_pRecordset.CreateInstance(__uuidof(Recordset));   //打开记录集   m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,    adLockOptimistic,adCmdText);   //遍历记录集   while(!m_pRecordset->adoEOF)   {    m_Grid.InsertItem(0,"");    m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));    m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));    m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));    m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));    //将记录集指针移动到下一条记录    m_pRecordset->MoveNext();   }   //断开数据库连接   ExitConnect();
    2022-09-02 14:45:03下载
    积分:1
  • 又一个简单的VC++ 定时关机功能实现
    又一个简单的VC++ 定时关机功能实现,程序运行后屏蔽最大化,将最小化重定向至隐藏窗口,在Windows托盘处显示图标,双击该图标可调用出定时关机设置窗口。具体实现定时关机功能的代码如下:   // 将图标放入系统托盘    TrayNotifyMsg(NIM_ADD, IDR_MAINFRAME, "定时关机");    // 初始化关机时间为23点.    SYSTEMTIME systime;    ((CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER_TIME))->GetTime(&systime);    systime.wHour = 23;    systime.wMinute = 0;    systime.wSecond = 0;    ((CDateTimeCtrl*)GetDlgItem(IDC_DATETIMEPICKER_TIME))->SetTime(&systime);    // 设定定时器    SetTimer(1, 1000, NULL);    // 显示当前的系统时间    ShowCurrentTime();    return TRUE; // return TRUE unless you set the focus to a control   }
    2022-02-02 22:49:18下载
    积分:1
  • 毫秒级定时器 VC范例及
    VC++编写的毫秒级定时器实例,上一次的终止值变成新的起始值,发送消息通知对话框该更新时间了。   //更新时间   void CMilliSecondDlg::OnUpdateTime()   {    struct _timeb timebuffer;    char *timeline;    //获得毫秒级的时间    _ftime( &timebuffer );    timeline = ctime(&(timebuffer.time));    //格式化时间    m_strTime.Format("当前时间是:%.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20]);    UpdateData(FALSE);   }
    2023-05-15 18:00:02下载
    积分:1
  • VC6.0 使用ODBC读写Excel表格文件
    本VC++源码主要演示使用ODBC数据库访问技术:通过ODBC读写Excel表格文件,若数据库表没有被创建,则将"读取"按钮和"列表"控件置为无效状态,获取主程序所在路径,获取数据库文件。
    2022-08-21 14:44:43下载
    积分:1
  • VC++ 定义3种样式的ComboBox下拉列表框
    VC++ 定义3种样式的ComboBox下拉列表框(组合框),主要是简易式、下拉式、下拉列表式。在简易式或下拉式的编辑框中输入文本,然后点击[
    2022-02-02 08:39:36下载
    积分:1
  • VC++6.0 执行数据库事务的范例
    在VC++6.0程序中执行数据库事务的一个范例,是一个数据库的高级应用例子,关于设置ADO控件,方法如下:   (1)在程序中选择ResourceView视图,打开“Dialog”节点下的“IDD_AFFAIR_DIALOG”对话框资源,右键单击ADO Data控件,在弹出的菜单中选择Properties菜单项,选择通用选项卡,单击“生成”按钮,在连接选项卡中单击“…”按钮,打开当前文件夹中的Access数据库,单击“测试连接”按钮,单击“确定”按钮。   (2)右键单击DataGrid控件,在弹出的菜单中选择Properties菜单项,选择All选项卡,在DataSource项对应的Value值中重新选择IDC ADODC1项。   
    2022-07-23 05:48:05下载
    积分:1
  • VC++俄罗斯方块 带声音
    VC++俄罗斯方块源码 带声音,操作说明:利用键盘控制方块的移动: ↑ 方块旋转 ↓ 直接落下 ←向左移动 → 向右移动。消除行数已经超过10级,游戏结束。   游戏具体玩法:选中游戏界面的"游戏"|"游戏开始"来开始游戏,每当用方块填充完一行或者多行时,则可以消除当前这一行或者多行的方块,并得到一定积分。当方块堆放的高度超过游戏所规定的最大高度,即游戏界面最上面的边界。则认定游戏结束。开始时将要出现方块没有生成,其不能赋值给当前方块数组。   判碰撞,遇到了边界或者有其他方块档住我觉得这个方法对编写游戏很不错,碰撞检测的例子。
    2022-02-12 00:45:04下载
    积分:1
  • 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
  • VC++ 通过读写文件实现登录对话框
    文件读写:通过读写文件实现登录对话框,执行时将创建 MySaveFile 文件夹,在文件 pwd.ini 中生成密码,并向pwd.ini文件中写入初始密码888. 然后关闭文件,登录时,将读取文件中的内容,并判断用户的输入是否和pwd.ini 文件中存储的用户名和密码一致,从而判断用户是否可以正确登录。
    2022-06-26 14:35:10下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载