我在MS Visual Studio 2008中重写了一个简单的MFC应用程序,现在它正在按我想要的方式工作。我唯一的问题是,我必须按一个按钮,我不想要。它应该自动工作。我还注意到该函数以某种方式自动调用。
在以下各项之后调用这些函数:
CGetFileListDlg::CGetFileListDlg(CWnd* pParent /*=NULL*/)
void CGetFileListDlg::DoDataExchange(CDataExchange* pDX)
BEGIN_MESSAGE_MAP(CGetFileListDlg, CDialog)
BOOL CGetFileListDlg::OnInitDialog()
void CGetFileListDlg::OnPaint()
我希望自动调用的函数是:
void GetFileListDlg::OnBnClickedButtonGetFileList()
。如果我从OnPaint
(最后一次调用)调用我的函数,我的应用程序正在运行,但我什么也看不见,直到函数结束。 OnPaint
被称为超过20次(我不知道为什么)。那么我该怎么做(如果有可能的话),OnPaint
我的void CGetFileListDlg::OnBnClickedButtonGetFileList()
函数应该自动被调用?
提前致谢!
kampi
编辑:
我的CGetFileListDlg :: OnBnClickedButtonGetFileList()函数的作用是:它查询文件列表的两个给定路径,然后比较它们。 OnPaint被调用超过20次,这就是为什么这对我不好的原因,因为当我在那里调用这个函数时,它将被调用超过20次,为什么它被称为OnPaint函数,不会结束了,这就是为什么我看不到数据。如果我在OnInintDialog中调用我的函数,那么它可以工作,几乎没问题,但之后它就结束了,我可以看到窗口。
答案 0 :(得分:0)
根据你的函数(CGetFileListDlg::OnBnClickedButtonGetFileList()
)的作用(你应该添加到你的问题中),你可以重载其他一个窗口消息,比如WM_INITDIALOG
(应该是'CGetFileListDlg: :代码中的OnInitDialog'并在那里添加任何初始化
答案 1 :(得分:0)
PostMessage(WM_COMMAND,MAKEWPARAM(IDC_BUTTON_GET_FILE_LIST,BN_CLICKED),0);这就是我需要的命令。这个命令会像点击它一样操纵我的按钮。
无论如何,谢谢你的帮助。
kampi