繁体   English   中英

检测在编辑控件中的输入

[英]detect typing in an edit control

编辑:没关系! 下面的代码不起作用,但当我从网站上复制并粘贴它时,它工作正常。

我尝试了这个网站告诉我的内容,但它没有用。 Anywhay,可能正在做一些相当不错的事情。

int editid = 5654;
HWND edit;

//int WINAPI wWinMain
WNDCLASS wc;
wc.lpfnWndProc = WindowProc;
wc.lpszClassName = L"class name";




    HWND hwnd = CreateWindowEx(
    0,
    L"Class name",
    L"Copy N Paste",
    WS_OVERLAPPEDWINDOW | WS_THICKFRAME | WS_VISIBLE,
    CW_USEDEFAULT, 10,
    885, 484,
    NULL,
    NULL,
    hInstance,
    NULL
    );



edit = CreateWindowEx(
    0,
    L"EDIT",
    NULL,
    WS_CHILD | WS_VISIBLE |  ES_LEFT,
    20, 12,
    480, 22,
    hwnd,
    (HMENU)editid,
    hInstance,
    NULL
);

// LRESULT CALLBACK WindowProc
switch(uMsg) {
case WM_COMMAND:
    if(HIWORD(wParam) == EN_CHANGE && LOWORD(wParam)==editid) { // this is
        //supposed to detect a change event in the edit control
        MessageBox(0, L"Doesnt Work!", L"failure", 0);
    }
}

你可以处理WM_COMMAND,检查你的控件的HWND的lparam,看看你的wparam的HIWORD是不是焦点命令。

case WM_COMMAND:
    if((HWND)lparam == hwndmycontrol) {
        if(HIWORD(wparam) != EN_SETFOCUS && HIWORD(wparam) != EN_KILLFOCUS) {
            //triggered on keypress
        }        
    }

编辑:确保检查wparam是否为IDOK(这意味着用户按Enter键)。

通知将发送给编辑的父级。 您可能正在编辑控件的窗口过程中收听通知。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM