例如,在MFC程序中,我有我的主应用程序和“类”。如果我想从该“类”更新位于我的主应用程序中的控件(例如,列表框),我该怎么办?
答案 0 :(得分:1)
这是一个适合我的例子
theApp.m_pMainWnd->GetDlgItem(IDC_BUTTON6)->SetWindowTextW(L"Run Auto Test");
答案 1 :(得分:0)
您的课程可以设计为触发主应用程序可以监听的事件。然后,可以调用侦听器/事件处理程序/委托来处理事件并更新列表框。通常,大多数事件格式都会传递发件人的引用,在本例中是您的“类”,以及包含事件参数的对象。这些参数可用于传递要添加到列表框的项目列表。
答案 2 :(得分:0)
如果你的类中有对话框对象的句柄,那么你可以使用GetDlgItem(ResourceID)获取列表控制对象。
答案 3 :(得分:0)
最简单的方法是将listview从应用程序表单/窗口公开给使用它的类。您可以通过将listview对象(或父窗口)传递给类构造函数,或将其存储在类可访问的静态变量中来完成此操作。
为了更好的封装,您可以在类可以调用的应用程序中放置一个方法,例如“AddItemToListBox()”。这允许应用程序对象保持对访问列表框的方式的控制。您可以再次将其作为静态方法执行,或将主程序对象的'this'指针传递给类构造函数。
即。
class CApplication
{
CListBox m_ListBox;
public:
static void CApplication::AddItemToListBox(CString itemText)
{
// Add the item as you wish here
}
}
class CMyClass
{
afx_msg void CMyClass::OnMouseDown(...)
{
CApplication::AddItemToListBox("This is a test");
}
}