我的问题是关于Windows MFC应用程序中的组合框。
组合框的下拉部分包含由位图和字符串组成的项目。
有时,字符串太长,我必须使用SQL*Plus: Release 12.2.0.1.0 Production on Thu Oct 12 10:48:43 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Last Successful login time: Tue Oct 10 2017 22:52:08 +02:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> create table test_json(JSON_COLUMN clob, CONSTRAINT ensure_json CHECK (JSON_COLUMN is json));
Table created.
SQL> insert into test_json values('[{"id":"14843"},{"id":"14103"},{"id":"16632"},{"id":"14776"},{"id":"14658"},{"id":"14426"},{"id":"14838"},{"id":"14834"},{"id":"14804"},{"id":"14803"},{"id":"14802"},{"id":"14801"},{"id":"14779"},{"id":"14767"},{"id":"16013"},{"id":"15980"},{"id":"15979"},{"id":"15978"},{"id":"15977"},{"id":"15976"},{"id":"15975"},{"id":"15974"},{"id":"15973"},{"id":"15972"},{"id":"15971"},{"id":"15970"},{"id":"15969"},{"id":"15968"},{"id":"15967"},{"id":"15966"},{"id":"15965"},{"id":"15964"},{"id":"15963"},{"id":"15962"},{"id":"15961"},{"id":"15960"},{"id":"16012"},{"id":"15903"}]');
1 row created.
SQL> commit;
Commit complete.
SQL> SELECT * FROM test_json WHERE json_exists(JSON_COLUMN, '$.id?(@ == 16632)');
JSON_COLUMN
--------------------------------------------------------------------------------
[{"id":"14843"},{"id":"14103"},{"id":"16632"},{"id":"14776"},{"id":"14658"},{"id
方法调整组合框下拉部分的宽度。
我的问题是,当组合框靠近计算机屏幕的右边缘时,下拉列表的右侧部分将被隐藏(请参阅下面的CComboBox::SetDroppedWidth()
和image_1
)。
我希望它在Excel中表现得像(参见下面的image_2
),这意味着我希望相应地移动下拉列表,以便可以看到所有项目而不会被裁剪。
如何实现这一目标?
image_2:靠近计算机右边缘,下拉列表的右侧部分是隐藏的
=============================================== ==================
=============================================== ==================
编辑2
确定。我忘了提到image_3
是m_cbXmodels
个对象。这就是句柄为NULL的原因。我可以通过CComboBoxEx
...
答案 0 :(得分:3)
处理CBN_DROPDOWN
通知。
使用GetComboBoxInfo
获取列表控件的句柄。
现在使用MoveWindow根据需要调整窗口。
MonitorFromWindow
可以获取当前屏幕尺寸。请参阅rcWork
中的MONITORINFO
成员。你只需要调整左右坐标。
编辑:正如您可以在评论中看到的:我的方法与CBN_DROPDOWN是早期感谢zett42)。此处无法调整组合框列表部分的大小。
但是可以将用户定义的消息发布到同一窗口并重新定位窗口。