+ -
当前位置:首页 → 问答吧 → windowSDK创建的组合框,怎么向组合框添加项??

windowSDK创建的组合框,怎么向组合框添加项??

时间:2011-12-04

来源:互联网



  代码如下:首先主函数调用 CreateComboBox() 函数,创建组合框,并向它的窗口过程发送
  SendMessage(m_hwndCom, CB_INSERTSTRING,0,(LPARAM)"ddd"); 就是添加一项,
  ComboxWndProc 是组合框的窗口过程,
   
  另一种方法是调用 ComboBox_SetCueBannerText(m_hwndCom, "ddd"); 但是没一点办法,
  
  牛牛们看看~~~

C/C++ code

void TControl::CreateComboBox()
{
    m_hwndCom = CreateWindowEx(WS_EX_NOACTIVATE ,// 附加样式 
        WC_COMBOBOX, NULL,    // 窗口类 // 窗口的标题
        CBS_AUTOHSCROLL|CBS_DROPDOWNLIST|WS_BORDER|WS_CHILDWINDOW, // 窗口样式 :可见,子窗口,
        10, 10, 100, 20,
        TtheApp.hwndMain, // 父窗口句柄
        (HMENU)NULL, TtheApp.hInstanceMain, NULL); // 没有菜单 // 应用程序实例    // 没有图标
                
    ComboBox_SetCueBannerText(m_hwndCom, "ddd");
    
    ShowWindow(m_hwndCom, SW_SHOWNORMAL); //显示
    [color=#FF0000]SendMessage(m_hwndCom, CB_INSERTSTRING,0,(LPARAM)"ddd");[/color]}

LRESULT CALLBACK TControl::ComboxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    if( message == CB_INSERTSTRING )
    // Add    ???

    return CallWindowProc(TtheApp.theCon->ComOrigWndproc, hWnd, message, wParam, lParam);
}


作者: gucheng789   发布时间: 2011-12-04

//不必子类化。
HWND CreateCB(HWND parentWnd)
{
HWND hComboBox=0;
hComboBox = CreateWindow("COMBOBOX",
  NULL,
  WS_CHILD|WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST |CBS_SORT,
  330, 20, 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;
}

作者: schlafenhamster   发布时间: 2011-12-04


  3K,这个可以实现,

  用 CreateWindowEx 这么实现啊,在扩展样式里我都传入 0 了,还是不显示,用CreateWindow又以!

 

作者: gucheng789   发布时间: 2011-12-04

ComBoxEx这样产生:
#define WS_EX_NOACTIVATE 0x08000000L
//
HWND WINAPI CreateComboEx(HWND parentWnd)
{
  HWND hComboBoxEx;
  INITCOMMONCONTROLSEX icex;
   
  icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
  icex.dwICC = ICC_USEREX_CLASSES;

  InitCommonControlsEx(&icex);

  hComboBoxEx = CreateWindowEx(WS_EX_NOACTIVATE, WC_COMBOBOXEX, NULL,
WS_BORDER | WS_VISIBLE |
WS_CHILD | CBS_DROPDOWN,
330, // Vertical position of Combobox
20, // Horizontal position of Combobox
90, // Sets the width of Combobox
140, // Sets the height of Combobox
parentWnd, (HMENU)IDC_COMBOBOX, 
(HINSTANCE) GetWindowLong(parentWnd, GWL_HINSTANCE), 
NULL);
// use CBEM_INSERTITEM头insert
  return hComboBoxEx;
}

作者: schlafenhamster   发布时间: 2011-12-04

热门下载

更多