作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<分区>
我最近开始学习 Windows API,想制作更具交互性的 GUI 应用程序。所有代码都是用 C++ 编写的。
我所做的是创建一个自定义按钮窗口,而不是使用内置按钮类。我希望每个按钮都有不同的文本,并希望在父窗口中进行设置。
所以我创建了按钮并保存了句柄:
hNavBtnNews = CreateWindow(szUW_NAV_BTN, "News", WS_CHILD | WS_VISIBLE, 540, 0, 100, HEADER_HEIGHT, header, NULL, NULL, NULL);
然后为了确保这没有失败,我检查了句柄并尝试绘制文本:
if(hNavBtnNews == NULL){
printf("\nFailed to Create Window Nav Button \n");
}else{
printf("\nCreated Window Nav Button");
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
hdc = BeginPaint(hNavBtnNews, &ps);
SetBkMode(hdc, TRANSPARENT);
SetTextColor(hdc, BG_TXT_COLOR);
GetClientRect(hNavBtnNews, &rect);
DrawText(hdc, "News", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hNavBtnNews, &ps);
}
这一切都是在父窗口过程的 WM_CREATE 情况下完成的(它本身工作得很好)。文本是浅灰色,按钮的背景是深蓝色。除了没有绘制文本。也没有编译器警告或错误。也许子类化内置控件对此会更好,但我不知道如何。将不胜感激解决此问题的任何帮助。
我是一名优秀的程序员,十分优秀!