c - 在 win32 中调整组合框的大小(更改宽度)

标签 c combobox resize width

我有以下代码来生成组合框:

HWND h = CreateWindowEx("COMBOBOX", "Text", CBS_DROPDOWN | WS_CHILD, WS_EX_CLIENTEDGE, ParentWnd, 0, 0, 200, 24);

在我的表单上创建组合框没有问题,但是如果我尝试使用以下内容调整它的大小,它将无法工作:

SetWindowPos(h, 0, 0, 0, NewWidth, OldHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);

知道为什么会发生这种情况吗?它似乎调整了组合框的错误部分的大小,该部分在某种程度上是透明的。

我已经尝试了很多天不同的事情,这可能是一些愚蠢的事情,但我无法确定它。

最诚挚的问候, 阿兰·德舍内 http://www.arianesoft.ca

最佳答案

伙计们,我找到了...我的 NewControlEx() C 函数中有些东西无法正常工作。我用过:

h$ = CreateWindowEx(0, "COMBOBOX", "TEXT", CBS_DROPDOWN | WS_CHILD, 10, 10, 400, 24, Parent.Handle, 0, Instance%, NULL);
SetWindowPos(h$, 0, 100, 100, 400, 32, SWP_NOZORDER | SWP_NOACTIVATE);
ShowWindow(h$, SW_SHOW);
InvalidateRect(h$, NULL, True);

这就像它应该的那样工作。抱歉给您带来麻烦。

原来是WM_SIZE:事件处理没有处理原始的wndproc并立即返回。

最诚挚的问候, 阿兰·德舍内 http://www.arianesoft.ca

关于c - 在 win32 中调整组合框的大小(更改宽度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/979059/

相关文章:

list - 您如何防止用户调整 clisctrl(报告 View )的列宽?

android - 软键盘显示时如何防止调整大小和重新布局窗口

c - Dbus glib接口(interface)设计与使用

c - 从 C 中的字符串中删除字符

c - 使用 BSD 套接字模拟事件的 FTP 连接

winapi - 强制组合框位于上方而不是下方的 "dropdown"

c# - UWP 导航 View : How to resize the width?

c - 用 C 语言求解二维数组迷宫

c# - 将组合框字符串值转换为 int

validation - 检查下拉列表中的值