Combo Box的简单使用(Win32)

ComboBox函数简单介绍

1SendMessage函数向窗口发送消息

LRESULTSendMessage(

HWNDhWnd,//handletodestinationwindow

UINTMsg,//message

WPARAMwParam,//firstmessageparameter

LPARAMlParam//secondmessageparameter

);

2ComboBox添加数据

HWNDhWndComboBox=GetDlgItem(hWnd,IDC_COMBO1);

TCHARszMessage[20]="Hello";

SendMessage(hWndComboBox,CB_ADDRSTRING,0,(LPARAM)szMessage);

3ComboBox插入数据

HWNDhWndComboBox=GetDlgItem(hWnd,IDC_COMBO1);

TCHARszMessage[20]="World";

SendMessage(hWndComboBox,CB_INSERTRSTRING,0,(LPARAM)szMessage);

4ComboBox删除数据

SendMessage(hWndComboBox,CB_DELETESTRING,1,0);//删除第二项数据

5清除ComboBox所有数据

SendMessage(hWndComboBox,CB_RESETCONTENT,0,0);

6获取ComboBox数据项目的数量

UINTuCount;

uCount=SendMessage(hWndComboBox,CB_GETCOUNT,0,0):

7获取ComboBox某项的值

TCHARszMessage[200];

ZeroMessage(szMessage,sizeof(szMessage)):

SendMessage(hWndComboBox,CB_GETLBTEXT,1,(LPARAM)szMessage);//获取第二项的数据

MessageBox(NULL,szMessage," ",MB_OK);

ComboBox简单使用

1界面设计如下图

2功能实现代码(建的是简单的Win32工程)

//ComboBox.cpp
#include "stdafx.h"
#include "resource.h"

LRESULT CALLBACK Dialog(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
	DialogBox(hInstance, (LPCTSTR)IDD_DIALOG1, NULL, (DLGPROC)Dialog);
	return 0;
}

LRESULT CALLBACK Dialog(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
	switch(uMessage)
	{
	case WM_INITDIALOG:
		return TRUE;

	case WM_COMMAND:
		UINT uSender;
		uSender = LOWORD(wParam);
		HWND hWndComboBox;
		hWndComboBox = GetDlgItem(hWnd, IDC_COMBO1);
		TCHAR szBuff[200];
		ZeroMemory(szBuff, sizeof(szBuff));
		switch(uSender)
		{
		//CB_ADDSTRING是在最后添加数据
		case IDC_BUTTON1:
			GetDlgItemText(hWnd, IDC_EDIT1, szBuff, sizeof(szBuff));
			SendMessage(hWndComboBox, CB_ADDSTRING, 0, (LPARAM)szBuff);
			break;

		//CB_ADDSTRING是在指定位置添加数据
		case IDC_BUTTON2:
			GetDlgItemText(hWnd, IDC_EDIT1, szBuff, sizeof(szBuff));
			SendMessage(hWndComboBox, CB_INSERTSTRING, 0, (LPARAM)szBuff);
			break;

		case IDC_BUTTON3:
			SendMessage(hWndComboBox, CB_RESETCONTENT, 0, 0);
			break;

		case IDC_BUTTON4:
			UINT uCount;
			uCount = SendMessage(hWndComboBox, CB_GETCOUNT, 0, 0);
			SetDlgItemInt(hWnd, IDC_EDIT2, uCount, TRUE);
			break;
			
		case IDC_BUTTON5:
			UINT uSelect;
			uSelect = GetDlgItemInt(hWnd, IDC_EDIT2, NULL, TRUE);
			SendMessage(hWndComboBox, CB_GETLBTEXT, uSelect, (LPARAM)szBuff);
			MessageBox(hWnd, szBuff, "SHOW", MB_OK|MB_ICONINFORMATION);
			break;

		case IDOK:
			EndDialog(hWnd, lParam);
			break;
		}
		break;

	case WM_CLOSE:
		EndDialog(hWnd, lParam);
		break;
	}
	return FALSE;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值