Visual Studio 2005 和 SmartPhone






3.92/5 (6投票s)
MFC 方式的 SmartPhone 编码技巧 - 第一部分
引言
SpinControl

我决定第一次编写一个智能手机程序,并发现与Pocket PC相比,需要克服许多差异。然而,相关的帮助信息很少,所以我决定与大家分享我发现的一些技巧。希望这能使智能手机开发更容易一些。由于我时间有限,我将一次分享一个技巧。
背景
这篇文章主要涉及MFC和基于对话框的应用程序。使用MFC类和基于对话框的应用程序进行编码时,帮助信息很少。我还发现,在VS 2005帮助文件中,他们删除了许多示例代码。
组合框
智能手机没有触摸屏,因此它原生不支持组合框。帮助文件告诉您使用微调框(Spin-Box)。您不会在工具下拉菜单中找到此控件。它必须使用微调控件和列表框来创建。
微调控件必须在代码中附加到列表框。
操作方法如下...
首先,将一个列表框添加到您的对话框中。使用以下属性
- 边框=TRUE
- 不使用整数高度=TRUE
- 通知=TRUE
- 垂直滚动条=TRUE
- 选择=单选
并为其指定一个ID - 我们将使用IDC_CONTROL1

然后,添加一个微调控件。控件属性如下
- 对齐方式=右对齐
- 箭头键=TRUE
- 方向=水平
- 循环=TRUE
- 设置伙伴整数=TRUE

然后,您需要将控件变量添加到列表框和微调控件,我们将为列表框添加m_ctrlControl1
,为微调控件添加m_ctrlSpin1
。
接下来,您需要为列表框添加一个字符串变量,对于此演示,我们将分配一个名为m_strControl1
的CString
。
// In your header, you will have the following
protected:
CString m_strControl1;
CListBox m_ctrlControl1;
CSpinButtonCtrl m_ctrlSpin1;
接下来,您需要将微调控件与列表框关联起来。在应用程序的InitDialog
中,添加以下代码
BOOL CSampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//..... startup code such as menus and defaults from the registry
m_ctrlSpin1.SetBuddy(&m_ctrlControl1);
现在我们准备好填充控件了
m_ctrlControl1.AddString(_T("Item1"));
m_ctrlControl1.AddString(_T("Item2"));
m_ctrlControl1.AddString(_T("Item3"));
现在您可以将文本设置为默认显示第一项,如下所示
m_ctrlControl1.GetText(0,m_strControl1);
UpdateData(FALSE);
完成了... 一个适用于智能手机的SpinBox
控件。

在我的下一篇文章中,我们将讨论如何将智能手机上的后退箭头键设置为在文本框中充当退格键。