创建自窗口是的窗口类为list 和combox即可

解决方案 »

  1.   

    这没有什么冲突吧,VC是什么???
    不过是一种开发环境嘛,当然它经过微软的定制包装,MFC也只不过是在SDK上包了一层,把HANDLE转换成某种对象实体,其实质还是用SDK呀.实际上,在写一些复杂一点的程序时,经常需要用一些底层的API,这没什么.
      

  2.   

    如可在DialogBox()生成的窗体上用sdk产生list和combox控件?
    能举个例子吗???
      

  3.   

    如果是对话框,在编辑对话框模板时直接加就是了,下面就是一个对话框模板:
    IDD_DIALOG DIALOGEX 0, 0, 320, 113
    STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
    EXSTYLE WS_EX_APPWINDOW
    CAPTION "Test4"
    FONT 9, "宋体", 0, 0, 0x1
    BEGIN
        DEFPUSHBUTTON   "Close",IDOK,200,7,113,18
        EDITTEXT        IDC_EDIT1,7,19,83,16,ES_AUTOHSCROLL | ES_WANTRETURN
        LISTBOX         IDC_LIST1,199,32,114,74,LBS_SORT | LBS_NOINTEGRALHEIGHT | 
                        WS_VSCROLL | WS_TABSTOP
        LTEXT           "IDC_EDIT1:",IDC_STATIC,7,7,41,8
    END
    如果是动态添加的控件,用CreateWindow创建就行了。其中lpszClassName可以是以下几个系统定义的窗口类名:
    BUTTON,COMBOBOX,EDIT,LISTBOX,MDICLIENT,SCROLLBAR,STATIC。
    如:
    hwnd = CreateWindow("BUTTON","Button1",...);
      

  4.   

    谢谢In335Hz的例子,受益匪浅。不过我还不清楚如何使用动态创建的控件如(向listbox添加选项,定义,捕捉单击消息等)
      

  5.   

    向ListBox,ComboBox添加选项等控制是通过发送消息实现的,你可以看看MSDN中
    LB_ ,CB_ 开头的一些消息。同时还有一些宏和发送这些消息是等价的,如:
    #define ListBox_InsertString(hwndCtl, index, lpsz)  ((int)(DWORD)SendMessage((hwndCtl), LB_INSERTSTRING, (WPARAM)(int)(index), (LPARAM)(LPCTSTR)(lpsz)))
    这些宏定义在\MICROSOFT VISUAL STUDIO\VC98\Include\目录下的WINDOWSX.H头文件中可以找到。
    要处理Notify消息(在父窗口里)的话,看看LBN_,CBN_开头的一些消息,有些控件还发送WM_COMMAND消息。
    如果要扩展这些控件的话,可以看看子类化和超类化。