回 帖 发 新 帖 刷新版面

主题:问:对话框响应键盘消息为何不起作用,请大侠赐教!!!

现叙述我写此段程序的初衷:原想实现对话框如窗体一般,可以响应键盘消息,亲自动手以后,结果却并非如我愿。

源程序部分代码如下:

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine,int nCmdShow)
{
    
    ::DialogBoxParam(hInstance, 
        MAKEINTRESOURCE(IDD_MAIN_DLG), 
        NULL, 
        (DLGPROC)MainDialogProc,
        NULL); 
    

    return 0;
}

LRESULT CALLBACK DialogProc(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
    switch(Msg)
    {
    case WM_KEYDOWN:
        switch(wParam)
        {
        case VK_RETURN:
            ::MessageBox(hwnd,"hello","",MB_OK);
            return TRUE;
        }
    }
    return FALSE;
}

请各位大侠不吝赐教,谢谢!!!

回复列表 (共3个回复)

沙发

这也能编译过去?::DialogBoxParam(hInstance, 
        MAKEINTRESOURCE(IDD_MAIN_DLG), 
        NULL, 
        (DLGPROC)MainDialogProc,
        NULL); 
MainDialogProc 应该是DialogProc

板凳


默认情况下回车接受到回车事件不会接受到按键事件,而是WM_COMMAND IDOK事件
你对话框消息处理WM_CLOSE你都没有没有处理

3 楼

回车的话处理 DM_GETDEFID消息

我来回复

您尚未登录,请登录后再回复。点此登录或注册