和滚动条控件挂上.doc
文本预览下载声明
和滚动条控件挂上
加进类enum语旬,定义滚动范围的最大值和最小值
在CEx06adialog.h中的类声明中加入
enum { nMin = 0 };
enum { nMax = 100 };
2. 修改CEx06aDialog::OnInitDialog()函数,初始化滚动范围。
CListBox* pLB = (CListBox*) GetDlgItem(IDC_DEPT);
pLB-InsertString(-1, Documentation);
pLB-InsertString(-1, Accounting);
pLB-InsertString(-1, Human Relations);
pLB-InsertString(-1, Security);
CScrollBar* pSB = (CScrollBar*) GetDlgItem(IDC_LOYAL);
pSB-SetScrollRange(nMin, nMax);
pSB = (CScrollBar*) GetDlgItem(IDC_RELY);
pSB-SetScrollRange(nMin, nMax);
3. 利用ClassWizard在CEx06aDialog中加进滚动条消息控制函数
void CEx06aDialog::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
int nTemp1, nTemp2;
nTemp1 = pScrollBar-GetScrollPos();
switch(nSBCode) {
case SB_THUMBPOSITION:
pScrollBar-SetScrollPos(nPos);
break;
case SB_LINELEFT: // left arrow button
nTemp2 = (nMax - nMin) / 10;
if ((nTemp1 - nTemp2) nMin) {
nTemp1 -= nTemp2;
}
else {
nTemp1 = nMin;
}
pScrollBar-SetScrollPos(nTemp1);
break;
case SB_LINERIGHT: // right arrow button
nTemp2 = (nMax - nMin) / 10;
if ((nTemp1 + nTemp2) nMax) {
nTemp1 += nTemp2;
}
else {
nTemp1 = nMax;
}
pScrollBar-SetScrollPos(nTemp1);
break;
}
}
利用其他的控件特性--Windows通用控件
进度指示器控件
滑杆条控件
微调按钮控件
列表控件
树状控件
EX06B示例程序
用Appwizard产生名为EX06B的项目
用ID IDD_DIALOG1建立一个新的对话框资源
用ClassWizard建立一个CDialog的派生类Cex06bDialog
进度条控件的编程。
class CEx06bDialog : public CDialog
{
public:
int m_nTrackbar2;
int m_nTrackbar1;
int m_nProgress;
CEx06bDialog(CWnd* pParent = NULL);
enum { IDD = IDD_DIALOG1 };
double m_dSpin;
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
virtual BOOL OnInitDialog();
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnItemchangedListview1(NMHD
显示全部