combo box-怎么sendmessage选中Combobox的某一项

问题描述

怎么sendmessage选中Combobox的某一项

用mfc 调用window api的 sendmessage函数,
选中Combobox的任意一项

不知道怎么写啊,请大侠帮忙!

解决方案

SendMessage(hwndComboBox, CB_GETCURSEL, 0, 0);
获取组合框的索引

解决方案二:

如果你是跨线程或者进程做的话,直接sendmessage给commbox不好做,
你可以自定义一个WM_USER+1的消息,然后在你的combox的parentwindow上去接收这个消息,然后让调用combox的select方法去选中某项

解决方案三:

SendMessage(hwndComboBox, CB_SETCURSEL, 0, 0);
设置组合框的默认项

解决方案四:

int index;
SendMessage(hComBox, CB_INSERTSTRING, 0, (LPARAM)_T("请选择"));
SendMessage(hComBox, CB_INSERTSTRING, 0, (LPARAM)_T("1 - AAA"));
index = (int)SendMessage(hComBox, CB_INSERTSTRING, 0, (LPARAM)_T("2 - BBB"));
SendMessage(hComBox, CB_SETCURSEL, index, 0);
SendMessage(hComBox, CB_INSERTSTRING, 0, (LPARAM)_T("3 - CCC"));
这样将 2 - BBB 选中。

解决方案五:

你试试这段代码可以不,当然你首先要先用spy++看看你要看到的window的title,也就是caption是多少。而且这段代码只支持有一个combox的,如果有多个,你需要enumwindow多个了。

 HWND hMainWnd = FindWindowEx(NULL, NULL, NULL, L"Test MFC Window");
    if (hMainWnd)
    {
        HWND hComboxWnd = FindWindowEx(hMainWnd, NULL, L"ComboBox", NULL);
        if (hComboxWnd)
        {
            SendMessage(hComboxWnd, CB_SETCURSEL, 2, 0);
        }
        printf("Finde Main WND");
    }

解决方案六:

SendMessage(hwnd, CB_SETCURSEL, 30, 0);
//if(second_dropdown_index <= 16)
//{
//  clickpos_y += n_dropdown_height * second_dropdown_index;
//  ClickPos(hwnd,168,clickpos_y);
//}
//else
//{
//  for (int i=0; i < second_dropdown_index - 16 ; i++)
//  {
//      ClickPos(hwnd,266,410);   //第二个下拉框 向下按钮
//  }
//  ClickPos(hwnd,168,410);   //最后一项
//}
Sleep(1000);
ClickPos(hwnd,168,clickpos_y);

选不中第30项
时间: 2024-11-26 01:59:17

combo box-怎么sendmessage选中Combobox的某一项的相关文章

VC 中Combo Box的使用

Combo Box(组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文 本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项,同时 也可以直接在文本框里面输入文本. 1.改变下拉框大小 1)直接在控件上操作,先点向下的箭头,就可以调整下拉框大小: 2)为了让列表框变的更宽,可以用setdroppedwidth(int width)函数来调整列表框的宽 度. 2. 定义控件对应变量 假定已经创建了一个Dialog,并且从控件工具箱将Combo Box 控件拖

mfc-MFC中Combo box控件问题

问题描述 MFC中Combo box控件问题 在我加入消息函数onsize后,测试工具,尽情的蹂躏对话框后combo 下拉菜单就不出来了,怎么回事啊? 解决方案 具体要看你的程序是不是失去响应了,下拉菜单点击事件等是否触发 解决方案二: ComboBox 的使用也不复杂啊,先通过 Wizard 增加一个变化,如下: CComboBox m_cbType; 再增加内容,如下: m_cbType.AddString(TEXT("每周")); m_cbType.AddString(TEXT(

怎样Selenium IDE选择combo box中值

最近一直在学习Selenium,打算先从 Selenium IDE入手.IDE 很简单,最重要的就是如何定位目标元素,本人推荐使用CSS来定位你的目标元素.css如何定位在这就不在赘述,google上一堆,对于在学习遇到的问题,强烈建议使用google,百度对于技术方面的搜索太渣渣. 下面我说说我今天遇到的一个问题,今天在写脚本的时候,定位不到combo box中的值.通过google最终找到解决的方法 一次使用 click, mouserover, click, command命令来选中com

combo box-dojo中Tree与ComboBox的交互

问题描述 dojo中Tree与ComboBox的交互 1.点击Tree的某个item,ComboBox显示点击的item.name 2.选中ComboBox的某个值,Tree自动扩展到相应节点 第一个比较简单,我自己已经实现:第二个只实现到:当ComboBox的值改变时, Tree扩展到固定的节点,即不知道用何种方法匹配当前字符串在后台数据文件 的'位置'--->tree.set('paths',[ ['world', 'AF', 'KE']] ); 说明:Tree和ComboBox已经关联到同

JS实现表单多文件上传样式美化支持选中文件后删除相关项_javascript技巧

开发中会经常涉及到文件上传的需求,根据业务不同的需求,有不同的文件上传情况. 有简单的单文件上传,有多文件上传,因浏览器原生的文件上传样式及功能的支持度不算太高,很多时候我们会对样式进行美化,对功能进行完善. 本文根据一个例子,对多文件的上传样式做了一些简单的美化(其实也没怎么美化..),同时支持选择文件后自定义删除相关的文件,最后再上传 文章篇幅较长,先简单看看图示: 一.文件上传基础 1. 单文件上传 最简单的文件上传,是单文件上传,form标签中加入enctype="multipart/f

如何在选择ComboBox中某一项的同时改变其显示的内容

问题描述 一个ComboBox,其中有三项,分别是a.b.c我想在用户选择a项的时候,在文本框中不显示a,而显示a0 解决方案 解决方案二:你的用法不正确.你应该这样用:comboBox.DisplayMember="text";comboBox.ValueMember="id";comboBox.Items.Add(new{id="a",text="a0"});comboBox.Items.Add(new{id="

Auto Complete combo Box(VB.NET Source Use API)

Private Declare Function LockWindowUpdate Lib "user32" (ByVal hWndLock As System.IntPtr) As LongPrivate Structure SIZE    Dim cx As Long    Dim cy As LongEnd StructurePublic Sub LockWindow(ByVal hwnd As System.IntPtr)    Dim lRet As Long    lRet

combo box-vs2013下Qt5 Qt combobox 应用

问题描述 vs2013下Qt5 Qt combobox 应用 请按照图片所示当ComboBox中变化时,折线图发生变化.请各位大神直接给出代码,要求添加一个子类实现 解决方案 http://bbs.csdn.net/topics/391938354

C# combo box一行文字太长,希望水平滚动,显示完全!急急急。

问题描述 C#做了一个WinForm窗体,有个combobox的控件,不想变宽,怎么实现鼠标点击以后,内容水平滚动,以便内容显示完全呢?类似跑马灯格式 解决方案 解决方案二:在winform下实现是相当繁锁的,那些做控件的sb自以为自己的控件很牛B,其实跟客户的需要差远了解决方案三:看看这个解决方案四:非要这么做,那你需要对下拉条目进行自绘,而且还要配合一个定时器.解决方案五:我觉得加上额外的线程定时重绘指定区域效果应该是最好的了.比如,item[1]的字符为123456,实际上只能显示123,