SDK ComboBox 滚动条?解决方法
SDK ComboBox 滚动条??
如下创建 ComboBox :
如下添加 ComboBox里的项 :
我向 Combobox 连续添加了 8个 选项,即分别是 "---> 1","---> 2","---> 3","---> 4","---> 5","---> 6","---> 7","---> 8",当这些选项不能全部显示时,为何没有滚动条出现???
效果如下图所示 ,我的期望是在 红色箭头 所指的地方出现滚动条 。
难道这个滚动条要自己画???不会吧,怎么画??
------解决方案--------------------
WS_VSCROLL
------解决方案--------------------
HWND CreateCB(HWND parentWnd)
{
HWND hComboBox=0;
hComboBox = CreateWindow("COMBOBOX",
NULL,
WS_CHILD|WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST |CBS_SORT,
330, 40, 90, 140,
parentWnd, (HMENU)IDC_COMBOBOX,
(HINSTANCE) GetWindowLong(parentWnd, GWL_HINSTANCE),
NULL);
//
ShowWindow(hComboBox,SW_SHOW);
SendMessage(hComboBox,CB_ADDSTRING ,0,(LPARAM)"你好");
SendMessage(hComboBox,CB_ADDSTRING ,0,(LPARAM)"我好");
SendMessage(hComboBox,CB_ADDSTRING ,0,(LPARAM)"他好");
return hComboBox;
}
如下创建 ComboBox :
- C/C++ code
g_hCB = CreateWindowEx( NULL, //WS_EX_CLIENTEDGE, L"COMBOBOX", L"COMBOBOX", WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DISABLENOSCROLL, 10, 140, 80, 50, _hWndParent, NULL, //g_hMenu, g_hInst, NULL);
如下添加 ComboBox里的项 :
- C/C++ code
WCHAR buf[128] = {0}; g_i ++; swprintf(buf, sizeof(buf)/sizeof(WCHAR), L"---> %d", g_i); int iRtn = SendMessage(g_hCB, CB_ADDSTRING, 0, (LPARAM)&buf[0]); MoveWindow(g_hCB, 10, 140, 100, 75, true);
我向 Combobox 连续添加了 8个 选项,即分别是 "---> 1","---> 2","---> 3","---> 4","---> 5","---> 6","---> 7","---> 8",当这些选项不能全部显示时,为何没有滚动条出现???
效果如下图所示 ,我的期望是在 红色箭头 所指的地方出现滚动条 。
难道这个滚动条要自己画???不会吧,怎么画??
------解决方案--------------------
WS_VSCROLL
------解决方案--------------------
HWND CreateCB(HWND parentWnd)
{
HWND hComboBox=0;
hComboBox = CreateWindow("COMBOBOX",
NULL,
WS_CHILD|WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST |CBS_SORT,
330, 40, 90, 140,
parentWnd, (HMENU)IDC_COMBOBOX,
(HINSTANCE) GetWindowLong(parentWnd, GWL_HINSTANCE),
NULL);
//
ShowWindow(hComboBox,SW_SHOW);
SendMessage(hComboBox,CB_ADDSTRING ,0,(LPARAM)"你好");
SendMessage(hComboBox,CB_ADDSTRING ,0,(LPARAM)"我好");
SendMessage(hComboBox,CB_ADDSTRING ,0,(LPARAM)"他好");
return hComboBox;
}