我不是学VB的,有些地方不太懂,特来请教!
这是针对本窗口中的combobox的,如果想用于其它窗口,请自行修改mhwnd   =   Me.Combo1.hwnd这一句为合适的语句(提示,可利用findwindow结合findwindowex获得combobox句柄):   
    
  Option   Explicit   
  Private   Declare   Function   SendMessage   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wparam   As   Long,   lparam   As   Any)   As   Long   
  Private   Const   WM_COMMAND   =   &H111   
  Private   Const   CBN_SELCHANGE   =   1   
  Private   Declare   Function   GetParent   Lib   "user32"   (ByVal   hwnd   As   Long)   As   Long   
  Private   Declare   Function   GetDlgCtrlID   Lib   "user32"   (ByVal   hwnd   As   Long)   As   Long   
    
  Private   Sub   Combo1_Click()   '测试,针对vb,CBN_SELCHANGE这条消息会生成combobox的click事件   
          MsgBox   "aaa"   
  End   Sub   
    
  Private   Sub   Command1_Click()   
          Dim   mhwnd   As   Long   
          Dim   ctrlid   As   Long   
          mhwnd   =   Me.Combo1.hwnd   
          ctrlid   =   GetDlgCtrlID(mhwnd)   
          Dim   wparam   As   Long,   lparam   As   Long   
          wparam   =   CBN_SELCHANGE   *   2   ^   16   +   ctrlid   
          lparam   =   mhwnd   
          Dim   phwnd   As   Long   
          phwnd   =   GetParent(mhwnd)   
          SendMessage   phwnd,   WM_COMMAND,   wparam,   ByVal   lparam   '这里不懂
  End   Sub   
    
    
  Private   Sub   Form_Load()   
          Dim   i   As   Long   
          For   i   =   1   To   20   
                  Combo1.AddItem   "line   "   +   CStr(i)   
          Next   
  End   Sub   

解决方案 »

  1.   

    SendMessage   phwnd,   WM_COMMAND,   wparam,   ByVal   lparam   '这里不懂
    在一个对话框程序被显示前发送此消息给它,通常用此消息初始化控件和执行其它任务
      

  2.   

    CBN_SELCHANGE*2^16+ctrlid 是什么意思?
      

  3.   

    WM_COMMAND=&H111
    CBN_SELCHANGE*2^16+ctrlid
     到底告什么 我不太清楚
    是个常数
      

  4.   

    ctrlid可以不要管,应该是得到句柄的ID`~~我只想知道^是什么操作,
    比如,CBN_SELCHANGE*2是长整型乘2,而再加上^16是什么意思呢?
    CBN_SELCHANGE   *   2   ^   16
      

  5.   

    CBN_SELCHANGE ctrlid 都是一个WORD
    CBN_SELCHANGE*2^16+ctrlid
    这就是让你把CBN_SELCHANGE ctrlid 组合成一个DWORD
    比如CBN_SELCHANGE = &h1234&
    ctrlid=&h5678&
    那么这个值就是 &h12345678&