读书人

通不过求解解决办法

发布时间: 2013-01-19 11:41:36 作者: rapoo

通不过,求解
书上找的代码:是一个查看密码的程序,就是通不过,求解。谢谢。
有一个对话框资源,编辑框。

#include<Windows.h>
#include"resource.h"


HHOOK hHook =NULL;
LRESULT CALLBACK HookProc(int code ,WPARAM wparam ,LPARAM lparam);
int CALLBACK DlgProc(HWND hDlg ,UINT uMsg ,WPARAM wParam,LPARAM lParam);
int APIENTRY WinMain(__in HINSTANCE hInstance ,__in_opt HINSTANCE hPrevInstance,__in_opt LPSTR lpCmdLine ,__in int nShowCmd)
{
return
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG),NULL,DlgProc);

}
int CALLBACK DlgProc( HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam )
{
switch(uMsg)
{
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDCANCEL:
{
UnhookWindowHookEx(hHook);
EndDialog(hDlg,wParam);

}
break;
case IDOK:
{
hHook = SetWindowsHookEx(WH_JOURNARECORD,HookProc,GetModuleHandle(NULL),0);


}
break;

}
}
break;
case WM_CLOSE:
{
EndDialog( hDlg,0)

}
break;


}
return 0;
}
LRESULT CALLBACK HookProc(int code,WPARAM wparam,LPARAM lparam)
{
HWND hwnd;
POINT point ;
GetCusorPos(&point );
hwnd=WindowFromPoint(point );
long nStyle = GetWindowLong(hwnd,GWL_STYLE);
EVENTMSG * event = (EVENTTMSG *)lparam;

if(event ->message==WM_LBUTTONDOWN)
{
if(nStyle&ES_PASSWORD)
{
PostMessage(hwnd,EM_SETPASSWORDCHAR,0,0);
}


}
return CallNextHookEx(hHook,code,wparam,lparam);

}








[解决办法]
这个难道不是mfc的吗?不是应该去mfc论坛吗。。。
[解决办法]

#include<Windows.h>
#include"resource.h"

HHOOK hHook =NULL;
LRESULT CALLBACK HookProc(int code, WPARAM wparam, LPARAM lparam);
int CALLBACK DlgProc(HWND hDlg ,UINT uMsg ,WPARAM wParam,LPARAM lParam);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
return DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG),NULL,DlgProc);
}

int CALLBACK DlgProc( HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam )
{
switch(uMsg)
{
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDCANCEL:
{
UnhookWindowsHookEx(hHook);
EndDialog(hDlg,wParam);
}
break;


case IDOK:
{
hHook = SetWindowsHookEx(WH_JOURNALRECORD,HookProc,GetModuleHandle(NULL),0);
}
break;

}
}
break;

case WM_CLOSE:
{
EndDialog(hDlg, 0);
}
break;


}
return 0;
}
LRESULT CALLBACK HookProc(int code, WPARAM wparam, LPARAM lparam)
{
HWND hwnd;
POINT point ;
GetCursorPos(&point );
hwnd=WindowFromPoint(point );
long nStyle = GetWindowLong(hwnd,GWL_STYLE);
EVENTMSG * event = (EVENTMSG*)lparam;

if(event ->message==WM_LBUTTONDOWN)
{
if(nStyle&ES_PASSWORD)
{
PostMessage(hwnd,EM_SETPASSWORDCHAR,0,0);
}
}
return CallNextHookEx(hHook,code,wparam,lparam);
}


[解决办法]
一样的。资源文件 要与 示例的 相同(包括ID)。

读书人网 >C++

热点推荐