是否有任何方法可以使DialogProc工作而不声明为非静态

时间:2013-07-23 06:52:38

标签: winapi button dialog static-methods static-members

我使用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函数而不声明它是静态的???

1 个答案:

答案 0 :(得分:0)

它必须是静态函数,因为Windows从C代码而不是C ++代码调用它。但是有几种方法可以让你的静态函数检索出这个'这个'你保存在某处的指针,然后使用该指针调用类成员函数。每个可用于Windows的GUI库都可以解决这个问题:考虑使用一个。