子线程或其他类中是调用主对话框控件的
GetDlgItem(
IDC_XXX)功能是非常不安全的,但是同时又想要在子线程或其他类中调用此函数来设置主对话框中某个控件的内容,该怎么处理呢?
根据MVC设计模式来看:
~M = Modle(模型)保存和维护数据,提供接口让外部修改数据,通知表现需要刷新
~V = View (表现) 从模型获取数据,根据数据画出表现
~C = Contrl(控制) 从用户得到输入,根据输入调整数据
子线程或其他类可以看做业务类或业务线程,作为Modle。主对话框界面作为View,负责展示用户交互界面。最好是View要和M分离才好。
如何实现业务数据和用户界面的分离呢?
可以利用windows的消息机制来实现这种方法。
函数原型
BOOL WINAPI
PostMessage(
HWND hWnd,