我有这个代码:
HWND hwndDP = CreateWindowEx(0,
DATETIMEPICK_CLASS,
TEXT("DateTime"),
WS_BORDER | WS_CHILD | WS_VISIBLE,
20, 50, 400, 60,
hDlg,
NULL,
NULL,
NULL);
HFONT hFont = CreateFont(40, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, L"Arial");
SendMessage(hwndDP, WM_SETFONT, WPARAM(hFont), TRUE);
创建日期时间选择器,如下图所示。如您所见,我更改了字体大小,因此日期时间选择器的字体更大。我有问题,被圈起来的按钮(下个月/上个月)不会改变大小并且很小。是否可以更改此按钮的大小。我需要它,因为我在触摸屏上使用这个日期时间选择器,很难点击这两个按钮。
最佳答案
不幸的是,没有简单的方法来改变我所看到的。这些控件实际上不是真正的按钮 - 它们只是绘制在窗口上,日历控件根据 NONCLIENTMETRICS.iScrollHeight
的值来确定它们的大小 - 它不允许您更改它们.
改变它的唯一方法是全局改变它会影响系统中的所有滚动条,可能不是你想做的事情。
我为您提供的一个想法是对控件进行子类化,以将您自己的(真实的)按钮控件置于现有按钮控件之上。
然后,当您的子类过程收到 WM_COMMAND
消息表明它们已被单击时,向日历控件发送 WM_KEYDOWN
消息以获取 VK_NEXT
或 VK_PRIOR
- 这些键将导致它向任一方向滚动一个月。
关于c++ - winapi - 日期时间选择器,更改上一个/下一个按钮的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33288543/