捕获回车键
#include "resource.h"
#include
LRESULT CALLBACK win847(HWND hDlg, UINT message, WPARAM wParam, LPARAM
lParam);
LRESULT CALLBACK EditProc (HWND, UINT, WPARAM, LPARAM);
HWND editWnd = NULL;
WNDPROC oldProc=NULL;
//?Ô???ò?ص?º?Êý
LRESULT CALLBACK win847(HWND hDlg, UINT message, WPARAM wParam, LPARAM
lParam)
{
BOOL bRet;
HDC dc, MemDc;
POINT point;
switch (message)
{
case WM_INITDIALOG:
editWnd = CreateWindow(L"Edit", L"", WS_VISIBLE | WS_CHILDWINDOW, 10, \
10, 100, 20, hDlg, (HMENU)1000, GetModuleHandle(NULL), NULL);
oldProc =
(WNDPROC)SetWindowLong(editWnd,GWL_WNDPROC,(LONG)EditProc);
return TRUE;
case WM_ERASEBKGND:
return true;
case WM_LBUTTONDOWN:
return TRUE;
break;
case WM_KEYDOWN:
return TRUE;
break;
case WM_CLOSE:
EndDialog(hDlg, 0);
break;
}
return FALSE;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HINSTANCE hInstance1 = GetModuleHandle(NULL);
DialogBoxParam(hInstance1, (LPCTSTR)IDD_DIALOG1, 0, (DLGPROC)win847, 0);
return 0;
}
BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize) {
DWORD dwMinSize;
dwMinSize = MultiByteToWideChar (CP_ACP, 0, lpcszStr, -1, NULL, 0);
if(dwSize < dwMinSize)
{
return FALSE;
}
MultiByteToWideChar (CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize);
return TRUE;
}
LRESULT CALLBACK EditProc (HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam) {
if(message == WM_KEYDOWN /*&& wParam==VK_RETURN*/)
{
char tmp[10];
itoa(wParam,tmp,10);
WCHAR tmp1[10];
MByteToWChar(tmp,tmp1,sizeof(tmp1)/sizeof(WCHAR));
MessageBox(NULL,tmp1,tmp1,0);
}
return CallWindowProc (oldProc, hwnd, message, wParam,
lParam) ;
}