大家好,小阳来为大家解答以上的问题。dialogboxparam这个很多人还不知道,现在让我们一起来看看吧!
1、你写的DialogProc原型应该是long DialogProc( HWND hwndDlg,UINT uMsg, WPARAM wParam, LPARAM lParam);改成int CALLBACK DialogProc(HWND hwndDlg,UINT uMsg, WPARAM wParam,LPARAM lParam);就可以了1.首先,不知你是否安装了SDK,因为这个问题通常是没有安装SDK造成的。
2、如果没有就去CSDN或是其它地方搜索下载安装,如果你用的是VC6.0的话,安装SDK后就可以在工具->选项->目录中的目录下拉菜单中分别选择Include files和Library files,两个选项都分别新建目录,例如:F:PROGRAM FILESMICROSOFT SDKINCLUDE 和 F:PROGRAM FILESMICROSOFT SDKLIB然后将两者上移,移至首位,这样程序默认选择的头文件和库文件就为SDK中的内容了。
3、然后再编译下,看看能不能通过。
4、 2.如果不是上述问题(即已安装了SDK),就检查下你自定义的DialogProc消息处理函数的声明返回类型,一般来说用INT_PTR CALLBACK,因为主要错误就在于DialogProc应为callback的指向int的指针类型,而INT_PTR CALLBACK最为合理。
5、或者试试BOOL CALLBACK,LRESULT CALLBACK。
6、网上也有人说把INT_PTR CALLBACK改成INT CALLBACK,也可以解决此问题,本人认为这种情况纯属个例,至少我不能分析出原理。
7、 3.如果LZ还有疑问或是找不到SDK,请留言。
8、将DialogProc原型long DialogProc( HWND hwndDlg,UINT uMsg, WPARAM wParam, LPARAM lParam);改成static int CALLBACK DialogProc(HWND hwndDlg,UINT uMsg, WPARAM wParam,LPARAM lParam);就可以了。
本文到此分享完毕,希望对大家有所帮助。
标签:
版权声明:本文由用户上传,如有侵权请联系删除!