如何判断哪些参数是必需的,哪些不是必需的?(visual c+;+;) 我在遵循VisualC++的MSDN教程创建Windows。它使用此代码注册一个窗口类 // Register the window class. const wchar_t CLASS_NAME[] = L"Sample Window Class"; WNDCLASS wc = { }; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClass(&wc);

如何判断哪些参数是必需的,哪些不是必需的?(visual c+;+;) 我在遵循VisualC++的MSDN教程创建Windows。它使用此代码注册一个窗口类 // Register the window class. const wchar_t CLASS_NAME[] = L"Sample Window Class"; WNDCLASS wc = { }; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClass(&wc);,c++,visual-c++,parameters,C++,Visual C++,Parameters,当我在MSDN上查找WNDCLASS结构时:它给出了以下实现: typedef struct tagWNDCLASS { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTS

当我在MSDN上查找WNDCLASS结构时:它给出了以下实现:

typedef struct tagWNDCLASS {
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCTSTR   lpszMenuName;
  LPCTSTR   lpszClassName;
} WNDCLASS, *PWNDCLASS;
您如何通过文档判断您只需要这三个参数

  • LPFNWDPROC
  • 欣斯坦斯
  • lpszClassName

  • 所有参数都是必需的,但大多数参数都可以设置为默认值

    WNDCLASS wc;
    wc.style = CS_BYTEALIGNWINDOW | CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = DefWindowProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = GetModuleHandle(NULL);
    wc.hIcon = NULL;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = NULL;
    wc.lpszMenuName = 0;
    wc.lpszClassName = "MYCLASS";
    

    它是一个
    结构
    ,需要填写所有成员。当然,它们中的一些可以是
    0
    NULL
    ,这些都记录在你发布的链接中。也许通过阅读它?例如:hCursor类游标的句柄。此成员必须是游标资源的句柄。如果该成员为NULL,则每当鼠标移动到应用程序窗口时,应用程序必须显式设置光标形状最初将所有成员设置为
    0
    您只需要这三个参数
    之间存在显著差异,您只需要**覆盖**这三个参数的默认0/NULL值
    @dxiv I未实现wc={};将所有成员设置为0,但我现在看到了它的工作原理。