读书人

通不过求解解决方法

发布时间: 2012-03-25 20:55:16 作者: 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论坛吗。。。
[解决办法]

C/C++ code
#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++

热点推荐