繁体   English   中英

没有打印出任何信件?

[英]Didn't print out any letter?

#include <stdio.h>
#include <stdlib.h>
#define WINVER 0x0500
#include <windows.h>

/// Glabal Handle
HANDLE StdHandle;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
  StdHandle = GetStdHandle(STD_OUTPUT_HANDLE); // Console window
  MSG Msg ;
  while (GetMessage(&Msg, NULL, 0, 0))
  {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
  }
  return Msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch (msg)
  {
    case WM_DESTROY:
      PostQuitMessage(0);
      break;
    case WM_KEYDOWN:
      if(wParam == VK_LCONTROL)
        printf ("LSHIFT");
      break;
    return 0 ;
  }

  return DefWindowProc(hWnd, msg, wParam, lParam) ;
}

可以使用mingw32-GCC编译此代码,而不会出现任何警告和错误。

如果按下左控件,它应打印出“LSHIFT”,但它没有。

为什么?

您的程序不会创建窗口,因此无法接收任何窗口消息。

您通常希望创建并注册窗口类(使用RegisterClass()RegisterClassEx() ),然后使用CreateWindow()CreateWindowEx()创建窗口的实例。

暂无
暂无

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

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