不好意思开口,但我实在不懂:)
szjlq 2000-12-13 06:36:00 我想在其它软件中实现自画菜单,这是用C写的DLL中的一段代码,不知
怎么回事,老是通不过,请各位大虾多多指点
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#pragma argsused
long m_lPrevProc;
extern "C" __declspec(dllexport) void __stdcall SetMenuitem(HWND hWND,
HMENU hMenu);
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*
lpReserved)
{
return 1;
}
//--------------------------------------------------------------------
-------
void MyWinProc(HWND hWND,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_DRAWITEM :
ShowMessage("WM_DRAWITEM");
break;
case WM_MEASUREITEM :
ShowMessage("WM_MEASUREITEM");
break;
default :
CallWindowProc(m_lPrevProc,hWND,uMsg,wParam,lParam);
程序在此处报错,我是菜鸟一个,望大虾多多指点:
[C++ Error] setmenumain.cpp(26): E2034 Cannot convert 'long' to 'int (
__stdcall *)()'
[C++ Error] setmenumain.cpp(26): E2342 Type mismatch in parameter 'lpP
revWndFunc' (wanted 'int (__stdcall *)()', got 'long')
}
//--------------------------------------------------------------------
-------
void __stdcall SetMenuitem(HWND hWND,HMENU hMenu)
{
m_lPrevProc=GetWindowLong(hWND,GWL_WNDPROC);
SetWindowLong(hWND,GWL_WNDPROC,(DWORD)MyWinProc);
}