C++ 第三个`setWindowsSubClass`参数中的`uIdSubclass`是什么?

C++ 第三个`setWindowsSubClass`参数中的`uIdSubclass`是什么?,c++,winapi,C++,Winapi,根据: SetWindowsSubClass原型是: BOOL SetWindowSubclass( __in HWND hWnd, __in SUBCLASSPROC pfnSubclass, __in UINT_PTR uIdSubclass, __in DWORD_PTR dwRefData ); 好的,我理解hWnd,pfnSubclass和dwRefData 我找不到好的信息是,我应该将uIdSubclass设置为什么 MSDN说: 子类ID。此ID与

根据:

SetWindowsSubClass原型是:

BOOL SetWindowSubclass(
   __in  HWND hWnd,
   __in  SUBCLASSPROC pfnSubclass,
   __in  UINT_PTR uIdSubclass,
   __in  DWORD_PTR dwRefData
);
好的,我理解
hWnd
pfnSubclass
dwRefData

我找不到好的信息是,我应该将
uIdSubclass
设置为什么

MSDN说:

子类ID。此ID与子类过程一起唯一标识 子类。要删除子类,请将子类过程和该值传递给 RemoveWindowsSubclass函数。此值将传递给中的子类过程 uIdSubclass参数

好的,明白了,但是我从哪里得到这个身份证?它是我创造的还是我在某处得到的?如果它是我创造的东西,它应该是什么样子

<我在C++和Win32 API中做这件事,没有别的。


谢谢。

尽管从未听说过该函数,但我90%确信它是一个任意数字,就像您用来区分控件的id一样。这个函数让我很生气,但是,在艰难地完成之后。至少我知道它现在已经存在了:)我只是在这里猜测,但似乎你应该自己分配这些ID。由于它与子类过程结合使用以标识子类,因此冲突空间很小,并且允许您对多个子类使用相同的函数(例如dispatcher函数)。如果你不在乎,就用零;)@j_kubik,“如果你不在乎,就用零。”这似乎是winapi反复出现的趋势。“我不知道该放什么。哦,好吧,我想我会通过0。”-效果很好-@chris很正确,,,不管怎样,0通常(虽然不在这里)只是表示“使用默认值”的一种方式。如果您有智能默认值,那么它可以根据您的需要或多或少地工作。我认为WinAPI的这种趋势并没有那么糟糕。请仔细阅读