如何判断哪些参数是必需的,哪些不是? (visual c ++)

时间:2016-07-21 04:33:31

标签: c++ visual-c++ parameters

我正在关注创建Windows的Visual C ++ MSDN教程。它使用此代码注册窗口类。

// 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);

当我在MSDN上查找WNDCLASS结构时:WNDCLASS Structure它提供了这种实现:

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;

您如何通过文档告诉您只需要这三个参数?

  1. 的lpfnWndProc
  2. 的hInstance
  3. lpszClassName

1 个答案:

答案 0 :(得分:1)

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

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";