从组合框读取
reading from ComboBox
如何在windows应用程序(borland c++)中读取组合框的选定值的文本,例如:我有一个包含两个值(sum和mult)的组合框,我想看看它是否为sum,我必须添加数字,如果是mult,我必须乘以数字,所以我如何读取组合框的值在这种情况下
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;
//...
}
}
假设您正在使用Windows,您可以使用以下消息:
WM_GETTEXTLENGTH
and 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.
我从来没有使用c++与winapplication,但我尝试了它与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);
}
}
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 无法找到/读取配置文件.conf-FileIOException
- 可组合的lambda/std::函数与std::可选
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++将文本文件中的数据读取到结构数组中
- 正在将csv文件读取为双精度矢量
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 为什么在读取文件大小时文件IO速度会发生变化
- 组合框初始化错误:无法读取未定义的属性'constructor'
- 从文件中读取字符串和双精度的组合
- Win32 API从带有两个组合框的对话框中读取组合框值
- 在未按enter确认的情况下读取组合
- 从组合框读取