我使用createDialogParam和DialogProc开发了任何按钮应用程序。首先我声明DialoProc方法是静态的,以使每件事情都运行良好并且它工作但现在的情况是有很多变量(未全局声明)和函数我必须在DialogProc函数内使用,现在我想制作它非静态因为它是静态的,所以我不会实现更多的东西。
如果我没有将其声明为静态,则会出现错误
m_hwndPreview = CreateDialogParam( g_hInst,MAKEINTRESOURCE(IDD_MAINDIALOG), m_hwndParent,(DLGPROC)DialogProc, (LPARAM)this); //('type cast' cannot convert from 'overloaded-function'
//to 'DLGPROC')
是否有任何解决方案来制作dialogProc函数而不声明它是静态的???
答案 0 :(得分:0)
它必须是静态函数,因为Windows从C代码而不是C ++代码调用它。但是有几种方法可以让你的静态函数检索出这个'这个'你保存在某处的指针,然后使用该指针调用类成员函数。每个可用于Windows的GUI库都可以解决这个问题:考虑使用一个。