C++ 矢量中的按钮不响应自定义图形
我有一个Win32程序,其中有一个向量,其中包含一些我想自定义绘制的按钮的C++ 矢量中的按钮不响应自定义图形,c++,winapi,vector,hwnd,C++,Winapi,Vector,Hwnd,我有一个Win32程序,其中有一个向量,其中包含一些我想自定义绘制的按钮的HWND。我可以画它们,但我想做的只是改变背景颜色,所以似乎没有必要这样做。但是,它们似乎不会因自定义绘制而改变。他们看起来一样 我创建如下按钮: #define ID_BUTTON1 40000 std::vector<HWND> ButtonsVector; for (int i = 0, i > NumButtons, i++) { ButtonsVector.push_back(Cre
HWND
。我可以画它们,但我想做的只是改变背景颜色,所以似乎没有必要这样做。但是,它们似乎不会因自定义绘制而改变。他们看起来一样
我创建如下按钮:
#define ID_BUTTON1 40000
std::vector<HWND> ButtonsVector;
for (int i = 0, i > NumButtons, i++) {
ButtonsVector.push_back(CreateWindowEx(
NULL,
L"BUTTON", // Predefined class; Unicode assumed
L"X", // Button text
WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, // Styles
x, // x position
y, // y position (substitute some x and y values for these)
20, // Button width
20, // Button height
hWnd, // Parent window
(HMENU)ID_BUTTON1 + i, // Unique button ID
(HINSTANCE)GetWindowLongPtr(hWnd, GWLP_HINSTANCE),
NULL));
}
我需要添加以下行:
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version = '6.0.0.0' processorArchitecture = '*' publicKeyToken = '6595b64144ccf1df' language = '*'\"")
这确保使用的是ComCtrl32.dll版本6,允许自定义按钮控件的绘图。但是,您必须注意的一点是,您的应用程序针对的是哪个版本的Windows,因为早于XP的版本不包括此版本的dll。是吗?这也在以下内容中说明:“若要使用此通知代码,必须提供指定Comclt32.dll版本6.0的清单。有关清单的更多信息,请参阅。“谢谢!我只需要添加一个预处理器指令,它就成功了!如果您能将此作为答案发布,以便我可以接受,我将不胜感激。您可以展示您发现的对您有效的内容。好的,我会这样做。”。
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version = '6.0.0.0' processorArchitecture = '*' publicKeyToken = '6595b64144ccf1df' language = '*'\"")