如何在windows应用程序(borland C ++)中读取comboBox的选定值的文本,例如: 我有组合框,其中包含2个值(总和和多)我想看看它是否是总和我必须添加数字,如果它多我必须乘以数字,所以如何在这种情况下读取组合框的值。 / p>
答案 0 :(得分:0)
假设您使用的是Windows,则可以使用以下消息:
WM_GETTEXTLENGTH
和WM_GETTEXT
。
首先,获取所选文本的长度,然后分配缓冲区以确保它足够大,然后检索实际文本。容易。
示例:
const UINT length = ::SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0);
LPTSTR pszText = new TCHAR[length + 1];
::SendMessage(hWnd, WM_GETTEXT, length + 1, pszText);
// pszText will now contain the text you want, do what you want with it
delete[] pszText; // Remember to delete else you will leak.
答案 1 :(得分:0)
对于Windows:
在您的窗口过程中,使用WM_COMMAND
消息,然后检查CBN_SELCHANGE
通知。然后使用WM_GETTEXT
和WM_GETTEXTLENGTH
来接收选定的文字,例如Mark Ingram说。或者您也可以使用CB_GETCURSEL
来接收所选项目的标识符。
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDC_COMBO:
if (HIWORD(wParam) == CBN_SELCHANGE) {
HWND hCtl = GetDlgItem(hWnd, IDC_COMBO);//Get handle for HMENU item
if (SendMessage(hCtl, CB_GETCURSEL, 0, 0) == compareValue) {
//...
}
}
break;
}
break;
//...
}
}
答案 2 :(得分:-2)
我从不使用带有winapplication的c ++,但我尝试使用c#,希望你想要所需的输出,因为我通过你的问题,如果不对,那么你应该编辑你的问题。
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text == "ADD")
{
int a = 12, b = 13, c;
c = a + b;
MessageBox.Show("Result of adding= " + c);
}
else if (comboBox1.Text == "Multiple")
{
int x = 3, y = 5, z;
z = x * y;
MessageBox.Show("Result of multiplication= " + z);
}
}