子线程或业务类调用主对话框的GetDlgItem(IDC_XXX)

在MFC应用中,子线程直接调用主对话框的GetDlgItem(IDC_XXX)是不安全的。遵循MVC模式,应保持业务逻辑与界面分离。使用PostMessage实现线程间通信,定义自定义消息UM_MASSAGEEDIT2,通过OnPossMessageToEdit2处理函数更新界面,确保线程安全。
摘要由CSDN通过智能技术生成
子线程或其他类中是调用主对话框控件的 GetDlgItem( IDC_XXX)功能是非常不安全的,但是同时又想要在子线程或其他类中调用此函数来设置主对话框中某个控件的内容,该怎么处理呢?
根据MVC设计模式来看:
    ~M = Modle(模型)保存和维护数据,提供接口让外部修改数据,通知表现需要刷新
    ~V  = View (表现) 从模型获取数据,根据数据画出表现
    ~C =  Contrl(控制) 从用户得到输入,根据输入调整数据
子线程或其他类可以看做业务类或业务线程,作为Modle。主对话框界面作为View,负责展示用户交互界面。最好是View要和M分离才好。
如何实现业务数据和用户界面的分离呢?
可以利用windows的消息机制来实现这种方法。
函数原型
BOOL WINAPI PostMessage( HWND hWnd,
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值