edvinson
asked on
Undefined Var Use, Not Compiling
I am trying to monitor an EDIT control to see if the number 7 was entered
Here is my code.
2 questions, first AM I Definining the number 7 correctly
second, it's not compiling, something about undefined variable. i am fairly new to c++ and can't get this work. It should simply MessageBox when the user enters 7 in the field.
It doesnt
Please help!
Here is my code.
2 questions, first AM I Definining the number 7 correctly
second, it's not compiling, something about undefined variable. i am fairly new to c++ and can't get this work. It should simply MessageBox when the user enters 7 in the field.
It doesnt
#include <windows.h>
#include "resource.h"
HHOOK g_hhk;
HWND g_hEdit;
const byte VK_7 = (byte)0x37;
LRESULT CALLBACK GetMsgProc(
int code,
WPARAM wParam,
LPARAM lParam
)
{
if (0 > code || PM_NOREMOVE == wParam) return CallNextHookEx(g_hhk,code,wParam,lParam);
MSG* pmsg = (MSG*) lParam;
if (pmsg->message == WM_KEYDOWN) { // this one is for us
if (pmsg->hwnd == g_hEdit && pmsg->wParam == VK_7) { // '7' has been pressed if the monitored edit control
// ---> ACTION!
MessageBox(NULL, "The number was pressed!", "Notice", MB_OK);
}
}
return CallNextHookEx(g_hhk,code,wParam,lParam);
}
void InitMonitoring(HWND hEdit) {
h_hEdit = hEdit;
g_hhk = SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,NULL,GetCurrentThreadId());
}
void StopMonitoring() {
UnhookWindowsHookEx(g_hhk);
}
//---------------------------------------------------------------------------
HWND hWnd;
LRESULT CALLBACK DlgProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
//---------------------------------------------------------------------------
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),
hWnd, reinterpret_cast<DLGPROC>(DlgProc));
return FALSE;
}
//---------------------------------------------------------------------------
LRESULT CALLBACK DlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch(Msg)
{
case WM_INITDIALOG:
InitMonitoring(GetDlgItem(hwndDlg,IDC_EDIT1));
return TRUE;
case WM_COMMAND:
switch(wParam)
{
case IDOK:
EndDialog(hWndDlg, 0);
return TRUE;
}
break;
}
return FALSE;
}
//---------------------------------------------------------------------------
Please help!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER