用一个组合框就可以。
CB_ADDSTRING将新地址加入组合框中。
输入时处理
WM_COMMAND:
{
int nId=LOWORD(wParam);
int nCode=HIWORD(wParam);
HWND hCombo=(HWND)lParam;
if(IDC_COMBO1==nId)//组合框的ID
if(CBN_EDITCHANGE==nCode)
{
TCHAR szText[MAX_PATH];
GetWindowText(hCombo,szText);int nIndex=::SendMessage(hCombo,CB_FINDSTRING,0, szText);
if(nIndex!=CB_ERR)
{
::SendMessage(hCombo,CB_SETCURSEL,nIndex,0);
::SendMessage(hCombo,CB_SHOWDROPDOWN,(WPARAM)TRUE,0);
}}}
CB_ADDSTRING将新地址加入组合框中。
输入时处理
WM_COMMAND:
{
int nId=LOWORD(wParam);
int nCode=HIWORD(wParam);
HWND hCombo=(HWND)lParam;
if(IDC_COMBO1==nId)//组合框的ID
if(CBN_EDITCHANGE==nCode)
{
TCHAR szText[MAX_PATH];
GetWindowText(hCombo,szText);int nIndex=::SendMessage(hCombo,CB_FINDSTRING,0, szText);
if(nIndex!=CB_ERR)
{
::SendMessage(hCombo,CB_SETCURSEL,nIndex,0);
::SendMessage(hCombo,CB_SHOWDROPDOWN,(WPARAM)TRUE,0);
}}}
解决方案 »
- 请问怎么获取LPTSTR的实际大小呢?
- 100分请教 椭圆公章算法
- CFile类或CFileDialog类有没有能得到文件路径 不带文件名的方法?
- 如何利用VC++ 实现 渐变色。 急!!! 小弟先谢过各位大侠了。
- 有难求救!
- 帮帮我吧~~~~~~~~~~~~请问谁知道《inside OLE2》的中文版电子书在哪里可以下载啊?我只有这么多分了
- 这里高手多,只好在这里问了,一个按钮有两个字,声明一下,按钮足够大,足够长,可是点一下就会变成一个字了,
- UDP编程的问题!
- 考研如果成功是自己把档案寄给学校吗?还是...
- 如何获得EXCEL中单元格的批注
- 谁有vc++treeview类的使用程序
- 窗口类的设置问题?
SendMessage是怎么用的?
在这里起到什么作用?
...
}
如果用MFC, 或组合框是加在对话框中,可直接用Wizard加入IDC_COMBO1的CBN_EDITCHANGE消息,
在OnEditChangeCombo1()
{
TCHAR szText[MAX_PATH];
GetWindowText(hCombo,szText);//获取刚刚输入的文字int nIndex=::SendMessage(hCombo,CB_FINDSTRING,0, szText);//查找组合框中开头文字与输入文字匹配的条目
if(nIndex!=CB_ERR) //如果找到
{
::SendMessage(hCombo,CB_SETCURSEL,nIndex,0);//选中该条目
::SendMessage(hCombo,CB_SHOWDROPDOWN,(WPARAM)TRUE,0);//同时打开下拉列表
}
hCombo怎么定义?
[email protected]
::GetWindowText(hCombo,szText);//获取刚刚输入的文字
还是不行呀,还是报错,error C2660: 'GetWindowTextA' : function does not take 2 parameters