English 中文(简体)
Cannot change the height of a combo box in the VS Dialog Editor
原标题:

Any combo box I create seems to be stuck at 12 dialog units in height. Microsoft s guidelines for spacing and sizing of controls in dialog boxes state that a combo box should be 14 dialog units high.

I have even tried editing the resource file in notepad and recompiling in Visual Studio without opening the resource editor - but the combo boxes are still the wrong size!

Any ideas?

问题回答

The height you provide for the combo box specifies the size of the combo box when it is opened. The height of the edit control portion is based on the font. (Or based on your item size if you are owner-draw.)

in my case, i have handled WM_WINDOWPOSCHANGING message and altered cy member in WINDOWPOS structure, it works, may help.

Now let s suppose you want to change size of the drop down area (the list that appears when you press the button). Remember that the combo box used to be just an edit box and a list glued together in old times. So we will need to change the total width/height somehow.

One way is to edit the width/height in the RC file directly.

The astonishing thing with the VS dialog editor is that it will by default create a default "drop" area of almost zero pixels. You won t see the list at all!

In the dialog editor, hover your mouse cursor above the drop down button until the mouse cursor becomes the north-south type. Then click and the real bounds will show and you can modify the area.

Example:

Dialog editor trick

You can get the combo components HWNDs and sizes with WTL::CComboBox::GetComboBoxInfo(), for instance in your OnInitDialog():

COMBOBOXINFO cbi = {sizeof COMBOBOXINFO}; 
CComboBox(GetDlgItem(ID_MYCOMBO)).GetComboBoxInfo(&cbi);
CRect rComboEdit = cbi.rcItem;
// adjust rComboEdit to your needs
CEdit(cbi.hwndItem).MoveWindow(rComboEdit);




相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签