Articles of 调整

TabCtrl_SetItemSize和用户绘制选项卡控件

我有这个Win32用户绘制的选项卡控件创build为: CONTROL "Tab1",IDC_TAB_CONT,"SysTabControl32",TCS_BOTTOM | TCS_OWNERDRAWFIXED | NOT WS_VISIBLE,0,14,185,88 我想要这个控件的标签大小调整为从来没有看到“ 滑动箭头 ”: 现在,几乎所有关于此控件的工作都按预期工作,除了它不响应TabCtrl_SetItemSize 。 尝试尽可能的,当我绘制它们(在传递给WM_DRAWITEM的DRAWITEMSTRUCT )时,我得到的标签的大小始终是适合其中最长的标题的大小,而不是我用TabCtrl_SetItemSize设置的大小。 但是,在TabCtrl_SetItemSize文档中 ,它说: [ TabCtrl_SetItemSize ]在固定宽度或自绘制选项卡控件中设置制表符的宽度和高度。 我设法resize的唯一方法是通过向控件发送一个TCM_SETITEM消息,并在绘制时在其中写入所需的文本,在其中设置所需长度的虚拟string。 这是相当不方便,不是一个特别好的黑客。 有谁知道吗? 为什么TabCtrl_SetItemSize不能按预期工作? 和/或 如何正确设置标签大小? 非常感谢, JOCE。

调整一个WPF窗口,但保持比例?

我有一个用户可resize的WPF窗口,我想约束resize,使窗口的纵横比保持不变。 理想情况下,我想通过拖拽一个angular来调整窗口大小来限制鼠标位置,以保持适当的纵横比。 如果边缘用鼠标resize,则其他维度应同时更改。 有没有一个简单的方法来做到这一点或任何人都知道的在线示例? 如果没有更好的解决scheme出现,我会发布我已经完成了一些我已经完成了。

更改滚动条的宽度

我正在开发一个触摸屏程序。 我正在使用C#和Visual Studio 2008.有什么办法来改变滚动条的宽度? 我知道我可以在Windows的显示属性中进行更改。 但是我只想在我的程序中不在整个系统中。 感谢您的帮助!

创build比桌面大的窗口(显示分辨率)

我需要调整大于屏幕分辨率或桌面大小的窗口,以编程方式(最好也是手动)。 由于MS-Windows XP / Vista不允许比屏幕更大的窗口大小,有没有人有任何想法来解决这个限制? 我试图在笔记本电脑上制作泛音效果,给我更多的工作空间。 一个较小的LCD尺寸的笔记本电脑确实有这样的function。 看到这个: http : //www.experts-exchange.com/OS/Microsoft_Operating_Systems/Windows/98/Q_21832063.html

如何在Windows对话框中处理WM_ERASEBKGND时避免闪烁

我有一个resize的对话框。 它也有一个自定义的背景,我为响应WM_ERASEBKGND调用而绘制(当前是对FillSolidRect的简单调用)。 当对话框resize时,会出现巨大的闪烁。 为了尝试减less闪烁,我枚举所有的子窗口,并将其添加到剪辑区域。 这似乎有一点帮助 – 现在,闪烁现象在所有的儿童控制中都是显而易见的,因为它们被重新绘制。 如何在resize的同时使对话框无闪烁? 我怀疑双缓冲必须发挥一部分,但我不知道如何做到这一点与儿童控制的对话(没有使所有的孩子控制所有者绘制或类似的东西)。 我应该注意到,我正在使用C ++(不是.NET)和MFC,但是欢迎使用纯粹的基于Win32的解决scheme:) 注:有一件事我尝试了,但没有奏效(不知道为什么)是: CDC memDC; memDC.CreateCompatibleDC(pDC); memDC.FillSolidRect(rect, backgroundColor); pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);

WinAPI C ++:重新编程窗口resize

我有一个窗口,我想要实现边界的调整边界,就像任何其他窗口。 从意见和答复中收集build议,我重写了我的代码。 对于WM_GETMINMAXINFO我有: MINMAXINFO *min_max = reinterpret_cast<MINMAXINFO *>(lparam); min_max->ptMinTrackSize.x = MINX; min_max->ptMinTrackSize.y = MINY; MINX和MINY是我希望窗口的最小尺寸。 对于WM_NCHITTEST我有: RECT wnd_rect; int x, y; GetWindowRect (window, &wnd_rect); x = GET_X_LPARAM (lparam) – wnd_rect.left; y = GET_Y_LPARAM (lparam) – wnd_rect.top; if (x >= BORDERWIDTH && x <= wnd_rect.right – wnd_rect.left – >BORDERWIDTH && y >= BORDERWIDTH && y <= […]